Пример #1
0
        private void RunTask(IExecutorDriver driver, TaskInfo taskInfo)
        {
            driver.SendTaskRunningStatus(taskInfo.task_id);

            var url = Encoding.UTF8.GetString(taskInfo.data);
            var imageFileName = RunRendering(taskInfo.task_id, url);

            SendRenderResultMessage(driver, url, imageFileName);
            driver.SendTaskFinishedStatus(taskInfo.task_id);
        }
Пример #2
0
        public override void LaunchTask(IExecutorDriver driver, TaskInfo taskInfo)
        {
            Console.WriteLine($"Launching render task '{taskInfo.task_id.value}'...");

            Task.Factory.StartNew (() => {
                try {
                    RunTask (driver, taskInfo);
                } catch (Exception e) {
                    Console.WriteLine ($"Exception during render operation: {e}");
                    driver.SendTaskErrorStatus (taskInfo.task_id);
                }
            });
        }
Пример #3
0
        private static void SendRenderResultMessage(IExecutorDriver driver, string url, string fileName)
        {
            var message = new Message
            {
                Type = "RenderResult",
                Body = JsonHelper.Serialize(new RenderResultMessage
                {
                    Url = url,
                    FileName = fileName
                })
            };

            driver.SendFrameworkMessage(JsonHelper.Serialize(message));
        }
Пример #4
0
        private static async Task RunTask(IExecutorDriver driver, TaskInfo taskInfo)
        {
            driver.SendTaskRunningStatus(taskInfo.task_id);

            var url = Encoding.UTF8.GetString(taskInfo.data);

            var htmlContent = await GetUrlContent(url);
            if (htmlContent != null)
            {
                var links = ExtractLinks(htmlContent);
                links = links
                    .Select(x => x.ToLower())
                    .Distinct(StringComparer.CurrentCultureIgnoreCase);

                if (links.Any())
                    SendCrawlResultMessage(driver, url, links.ToArray());
            }

            driver.SendTaskFinishedStatus(taskInfo.task_id);
        }
Пример #5
0
 public override void Registered(IExecutorDriver driver, ExecutorInfo executorInfo, FrameworkInfo frameworkInfo, SlaveInfo slaveInfo)
 {
     _outputDir = Encoding.UTF8.GetString (executorInfo.data);
     Console.WriteLine ($"Registered executor on host '{slaveInfo.hostname}'. Output dir is '{_outputDir}'.");
 }
Пример #6
0
 public virtual void Shutdown(IExecutorDriver driver)
 {
 }
Пример #7
0
 public virtual void Reregistered(IExecutorDriver driver, SlaveInfo slaveInfo)
 {
 }
Пример #8
0
 public virtual void Registered(IExecutorDriver driver, ExecutorInfo executorInfo, FrameworkInfo frameworkInfo, SlaveInfo slaveInfo)
 {
 }
Пример #9
0
 public virtual void LaunchTask(IExecutorDriver driver, TaskInfo taskInfo)
 {
 }
Пример #10
0
 public virtual void KillTask(IExecutorDriver driver, TaskID taskId)
 {
 }
Пример #11
0
 public virtual void FrameworkMessage(IExecutorDriver driver, byte[] data)
 {
 }
Пример #12
0
 public virtual void Error(IExecutorDriver driver, string message)
 {
     Console.WriteLine($"Error: '{message}'.");
 }
Пример #13
0
 public virtual void Disconnected(IExecutorDriver driver)
 {
 }
Пример #14
0
        private static void SendCrawlResultMessage(IExecutorDriver driver, string url, string[] links)
        {
            var message = new Message
            {
                Type = "CrawlResult",
                Body = JsonHelper.Serialize(new CrawlResultMessage
                {
                    Url = url,
                    Links = links
                })
            };

            driver.SendFrameworkMessage(JsonHelper.Serialize(message));
        }
Пример #15
0
 public override void Registered(IExecutorDriver driver, ExecutorInfo executorInfo, FrameworkInfo frameworkInfo, SlaveInfo slaveInfo)
 {
     Console.WriteLine($"Registered executor on '{slaveInfo.hostname}'.");
 }