示例#1
0
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            PollForActivityTaskResponse response = new PollForActivityTaskResponse();

            response.ActivityTask = ActivityTaskUnmarshaller.Instance.Unmarshall(context);

            return(response);
        }
示例#2
0
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            PollForActivityTaskResponse response = new PollForActivityTaskResponse();

            UnmarshallResult(context, response);

            return(response);
        }
        public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context)
        {
            PollForActivityTaskResponse response = new PollForActivityTaskResponse();

            context.Read();
            response.PollForActivityTaskResult = PollForActivityTaskResultUnmarshaller.GetInstance().Unmarshall(context);

            return(response);
        }
            private async Task <ActivityTask> GetActivityTask(string domain, string taskList, string workerId)
            {
                PollForActivityTaskResponse response = null;

                do
                {
                    response = await PollForActivityTaskAsync(domain, taskList, workerId);
                }while (_isRunning && string.IsNullOrEmpty(response.ActivityTask.TaskToken));
                return(response.ActivityTask);
            }
        ActivityTask Poll()
        {
            Logger.LogMessage("Polling for {0} activity task ...", ActivityType);
            PollForActivityTaskRequest request = new PollForActivityTaskRequest()
            {
                Domain   = Constants.SWF_DOMAIN,
                TaskList = new TaskList()
                {
                    Name = this.ActivityTaskList
                }
            };
            PollForActivityTaskResponse response = this._swfClient.PollForActivityTaskAsync(request).Result;

            return(response.ActivityTask);
        }
        private async Task <ActivityTask> Poll()
        {
            EmrJobLogger.PrintInfo(SwfResources.Info_PollingActivityTask);
            PollForActivityTaskRequest request = new PollForActivityTaskRequest()
            {
                Domain   = this.SwfConfiguration.DomainName,
                TaskList = new TaskList()
                {
                    Name = this.SwfConfiguration.ActivityTasksList
                }
            };

            PollForActivityTaskResponse response = await this.SwfClient.PollForActivityTaskAsync(request);

            return(response.ActivityTask);
        }
示例#7
0
        /// <summary>
        /// Poll the image processing activity task list to see if work needs to be done.
        /// </summary>
        /// <returns></returns>
        private async Task <ActivityTask> PollAsync()
        {
            PollForActivityTaskRequest request = new PollForActivityTaskRequest
            {
                Domain   = _Domain,
                TaskList = new TaskList()
                {
                    Name = _TaskList
                }
            };

            Logger.Debug("TaskList: {0}", request.TaskList.Name);

            PollForActivityTaskResponse response = await _swfClient.PollForActivityTaskAsync(request, _cancellationToken);

            return(response.ActivityTask);
        }
示例#8
0
        public static void Worker(IAmazonSimpleWorkflow swfClient, string domainName, string tasklistName)
        {
            string prefix = string.Format("Worker{0}:{1:x} ", tasklistName,
                                          System.Threading.Thread.CurrentThread.ManagedThreadId);

            while (true)
            {
                Console.WriteLine(prefix + ": Polling for activity task ...");
                PollForActivityTaskRequest pollForActivityTaskRequest =
                    new PollForActivityTaskRequest()
                {
                    Domain   = domainName,
                    TaskList = new TaskList()
                    {
                        // Poll only the tasks assigned to me
                        Name = tasklistName
                    }
                };
                PollForActivityTaskResponse pollForActivityTaskResponse =
                    swfClient.PollForActivityTask(pollForActivityTaskRequest);

                RespondActivityTaskCompletedRequest respondActivityTaskCompletedRequest =
                    new RespondActivityTaskCompletedRequest()
                {
                    Result    = "{\"activityResult1\":\"Result Value1\"}",
                    TaskToken = pollForActivityTaskResponse.ActivityTask.TaskToken
                };
                if (pollForActivityTaskResponse.ActivityTask.ActivityId == null)
                {
                    Console.WriteLine(prefix + ": NULL");
                }
                else
                {
                    RespondActivityTaskCompletedResponse respondActivityTaskCompletedResponse =
                        swfClient.RespondActivityTaskCompleted(respondActivityTaskCompletedRequest);
                    Console.WriteLine(prefix + ": Activity task completed. ActivityId - " +
                                      pollForActivityTaskResponse.ActivityTask.ActivityId);
                }
            }
        }
示例#9
0
 public void Worker(string tasklistName)
 {
     while (true)
     {
         Console.WriteLine("Starting Worker" + tasklistName + ": Polling for activity...");
         PollForActivityTaskRequest pollForActivityTaskRequest =
             new PollForActivityTaskRequest()
         {
             Domain   = domainName,
             TaskList = new TaskList()
             {
                 Name = tasklistName
             }
         };
         PollForActivityTaskResponse pollForActivityTaskResponse = swfClient.PollForActivityTaskAsync(pollForActivityTaskRequest).Result;
         Console.WriteLine("finished polling pollForActivityTaskResponse");
         RespondActivityTaskCompletedRequest respondActivityTaskCompletedRequest =
             //Ideally this function would actually do something and return real values. But since it's just hello
             //world we're returning nothing of value. (a static string)
             new RespondActivityTaskCompletedRequest()
         {
             Result    = "{\"customReturnValue\":\"CustomReturnResult\"}",
             TaskToken = pollForActivityTaskResponse.ActivityTask.TaskToken
         };
         if (pollForActivityTaskResponse.ActivityTask.ActivityId == null)
         {
             Console.WriteLine("Starting Worker" + tasklistName + ": NULL");
         }
         else
         {
             RespondActivityTaskCompletedResponse respondActivityTaskCompletedResponse =
                 swfClient.RespondActivityTaskCompletedAsync(respondActivityTaskCompletedRequest).Result;
             Console.WriteLine("Starting Worker" + tasklistName + ": Activity completed" + pollForActivityTaskResponse.ActivityTask.ActivityId);
         }
     }
 }
示例#10
0
 private static void UnmarshallResult(JsonUnmarshallerContext context, PollForActivityTaskResponse response)
 {
     response.ActivityTask = ActivityTaskUnmarshaller.GetInstance().Unmarshall(context);
     return;
 }