Example #1
0
        public override bool ShouldProcess(Task task)
        {
            AmazonTaskType att = (AmazonTaskType)task.Type;

            if (att == AmazonTaskType.IMAGE
                //|| att == AmazonTaskType.IMAGE_ORI
                )
            {
                return(false);
            }
            return(true);
        }
Example #2
0
        public void GetLocalPath(Task task, out string filePath)
        {
            AmazonTaskType type = (AmazonTaskType)task.Type;
            string         f    = null;
            int            t1   = System.Environment.TickCount;

            semaphore.WaitOne();
            int t2 = System.Environment.TickCount;

            try
            {
                if (type == AmazonTaskType.IMAGE
                    //|| type == AmazonTaskType.IMAGE_ORI
                    )
                {
                    string filename;
                    f = "I";
                    ImageToFilePath(task, out filePath, out filename);
                }
                else
                {
                    f = "W";
                    int timea, timeb;
                    WebPageToFilePath(task, out filePath, out timea, out timeb);
                    if (timea > 5000)
                    {
                        Console.WriteLine("TimeA {0}", timea);
                    }
                    if (timeb > 5000)
                    {
                        Console.WriteLine("TimeB {0}", timeb);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                filePath = null;
            }
            finally
            {
                semaphore.Release();
            }
            //Monitor.Exit(locker);

            int t3 = System.Environment.TickCount;

            if (t3 - t2 > 10000)
            {
                Console.WriteLine("{0} {1} {2}", f, t2 - t1, t3 - t2);
                Console.WriteLine("{0} {1} {2} {3}", task.TaskId, task.Type, task.Url.GetHashCode(), task.Url);
            }
        }
Example #3
0
        protected override ContentProcessResult Process(TaskData td)
        {
            Task task = td.Task;

            byte[]               bytes  = td.Bytes;
            AmazonTaskType       att    = (AmazonTaskType)task.Type;
            ContentProcessResult result = new ContentProcessResult();

            //set to true, but could fail
            result.Success = true;
            if (att == AmazonTaskType.IMAGE
                //|| att == AmazonTaskType.IMAGE_ORI
                )
            {
                //DoImage();
            }
            else
            {
                string html = GetString(bytes, null);
                if (!Validate(html))
                {
                    result.Success = false;
                    return(result);
                }
                switch (att)
                {
                case AmazonTaskType.INDEX:
                    DoIndex(task, html, result);
                    break;

                case AmazonTaskType.CATEGORY:
//						DoCategory(task, html, result);
                    break;

                case AmazonTaskType.MORE_CATEGORY:
                    DoMoreCategory(task, html, result);
                    break;

                case AmazonTaskType.PAGES:
                    DoPages(task, html, result, null);
                    break;

                case AmazonTaskType.PAGE:
                    DoPage(task, html, result);
                    break;
                }
            }
            return(result);
        }
Example #4
0
        private void button4_Click(object sender, EventArgs e)
        {
            string         s   = comboBox1.SelectedItem as string;
            AmazonTaskType att = (AmazonTaskType)Enum.Parse(typeof(AmazonTaskType), s);

            if (!string.IsNullOrEmpty(txtNewTask.Text) && txtNewTask.Text.StartsWith("http://"))
            {
                ins.sqlServerTaskPool.ProduceTask(new Task
                {
                    Url  = txtNewTask.Text,
                    Type = (int)att,
                });
            }
            UpdateStatistics();
        }
Example #5
0
        private Task MakeTask(string path, AmazonTaskType taskType, string context)
        {
            Task t = new Task();

            if (!path.StartsWith("http://"))
            {
                //relative path
                t.Url = URL_PREFIX + path;
            }
            else
            {
                //absolute path
                t.Url = path;
            }
            t.Url     = RemoveQid.Replace(t.Url, "");
            t.Type    = (int)taskType;
            t.Context = context;
            return(t);
        }