protected internal virtual void HintJobExecutor(JobEntity job) { JobExecutor jobExecutor = context.Impl.Context.ProcessEngineConfiguration.JobExecutor; if (!jobExecutor.IsActive) { return; } JobExecutorContext jobExecutorContext = context.Impl.Context.JobExecutorContext; ITransactionListener transactionListener = null; if (!job.Suspended && job.Exclusive && jobExecutorContext != null && jobExecutorContext.ExecutingExclusiveJob && AreInSameProcessInstance(job, jobExecutorContext.CurrentJob)) { // lock job & add to the queue of the current processor DateTime currentTime = ClockUtil.CurrentTime; job.LockExpirationTime = new DateTime(currentTime.Ticks + jobExecutor.LockTimeInMillis); job.LockOwner = jobExecutor.LockOwner; transactionListener = new ExclusiveJobAddedNotification(job.Id, jobExecutorContext); } else { // notify job executor: transactionListener = new MessageAddedNotification(jobExecutor); } context.Impl.Context.CommandContext.TransactionContext.AddTransactionListener(TransactionJavaStatus.Committed, transactionListener); }
private async Task CreateMessagePayloadAndSend(string conversationId, Message message) { var notification = new MessageAddedNotification(conversationId, message.UtcTime); var participants = Conversation.ParseId(conversationId); var notificationDto = new NotificationDto(participants, JsonConvert.SerializeObject(notification)); await notificationService.SendNotification(notificationDto); }
protected internal virtual void NotifyAcquisition(CommandContext commandContext) { var jobExecutor = context.Impl.Context.ProcessEngineConfiguration.JobExecutor; var messageAddedNotification = new MessageAddedNotification(jobExecutor); var transactionContext = commandContext.TransactionContext; transactionContext.AddTransactionListener(TransactionJavaStatus.Committed, messageAddedNotification); }
protected internal virtual void notifyAcquisition(CommandContext commandContext) { JobExecutor jobExecutor = Context.ProcessEngineConfiguration.JobExecutor; MessageAddedNotification messageAddedNotification = new MessageAddedNotification(jobExecutor); TransactionContext transactionContext = commandContext.TransactionContext; transactionContext.addTransactionListener(TransactionState.COMMITTED, messageAddedNotification); }