Пример #1
0
 public FailJobCommand(GatewayClient client, long jobKey)
 {
     gatewayClient = client;
     request       = new FailJobRequest
     {
         JobKey = jobKey
     };
 }
 public FailJobCommand(GatewayClient client, IAsyncRetryStrategy asyncRetryStrategy, long jobKey)
 {
     gatewayClient           = client;
     this.asyncRetryStrategy = asyncRetryStrategy;
     request = new FailJobRequest
     {
         JobKey = jobKey
     };
 }
Пример #3
0
        public void ShouldSendFailCommandOnExceptionInJobHandler()
        {
            // given
            var expectedRequest = new ActivateJobsRequest
            {
                Timeout           = 123_000L,
                MaxJobsToActivate = 1,
                Type   = "foo",
                Worker = "jobWorker"
            };

            var expectedFailRequest = new FailJobRequest
            {
                JobKey       = 1,
                ErrorMessage = "Job worker 'jobWorker' tried to handle job of type 'foo', but exception occured 'Fail'",
                Retries      = 2
            };

            TestService.AddRequestHandler(typeof(ActivateJobsRequest), request => CreateExpectedResponse());

            // when
            using (var jobWorker = ZeebeClient.NewWorker()
                                   .JobType("foo")
                                   .Handler((jobClient, job) =>
            {
                if (job.Key == 1)
                {
                    throw new Exception("Fail");
                }
            })
                                   .MaxJobsActive(1)
                                   .Name("jobWorker")
                                   .Timeout(TimeSpan.FromSeconds(123L))
                                   .PollInterval(TimeSpan.FromMilliseconds(100))
                                   .Open())
            {
                Assert.True(jobWorker.IsOpen());
                while (TestService.Requests[typeof(ActivateJobsRequest)].Count < 1 ||
                       TestService.Requests[typeof(FailJobRequest)].Count < 1)
                {
                }
            }

            // then
            var actualRequest = TestService.Requests[typeof(ActivateJobsRequest)][0];

            Assert.AreEqual(expectedRequest, actualRequest);

            var actualFailRequest = TestService.Requests[typeof(FailJobRequest)][0];

            Assert.AreEqual(expectedFailRequest, actualFailRequest);
        }
        public async Task ShouldSendRequestAsExpected()
        {
            // given
            const string errorMessage    = "This job failed!";
            const int    jobKey          = 255;
            var          expectedRequest = new FailJobRequest
            {
                JobKey       = jobKey,
                ErrorMessage = errorMessage,
                Retries      = 2
            };

            // when
            await ZeebeClient.NewFailCommand(jobKey).Retries(2).ErrorMessage("This job failed!").Send();

            // then
            var actualRequest = TestService.Requests[typeof(FailJobRequest)][0];

            Assert.AreEqual(expectedRequest, actualRequest);
        }
Пример #5
0
 public override Task <FailJobResponse> FailJob(FailJobRequest request, ServerCallContext context)
 {
     return(Task.FromResult((FailJobResponse)HandleRequest(request, context)));
 }
Пример #6
0
 public override AsyncUnaryCall <FailJobResponse> FailJobAsync(FailJobRequest request, CallOptions options)
 {
     throw new ObjectDisposedException(ZeebeClientWasAlreadyDisposed);
 }
Пример #7
0
 public override AsyncUnaryCall <FailJobResponse> FailJobAsync(FailJobRequest request, Metadata headers = null, DateTime?deadline = null,
                                                               CancellationToken cancellationToken      = default(CancellationToken))
 {
     throw new ObjectDisposedException(ZeebeClientWasAlreadyDisposed);
 }
Пример #8
0
 public override FailJobResponse FailJob(FailJobRequest request, CallOptions options)
 {
     throw new ObjectDisposedException(ZeebeClientWasAlreadyDisposed);
 }
        public async Task <NoContentResult> FailJob([FromBody] FailJobRequest request)
        {
            await _daprClient.InvokeBindingAsync("command", Commands.FailJob, request);

            return(NoContent());
        }