如何使用DER机制在服务结构中调度任务?

How to schedule a task in service fabric using #39;Ac#173;tor Remin#173;der#39; mechanism?(如何使用DER机制在服务结构中调度任务?)
本文介绍了如何使用DER机制在服务结构中调度任务?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望每天、每周和每月生成发票,并希望定期发送发票。 每个客户都有不同的发票设置。

推荐答案

一段时间前,我想知道自己如何做到这一点。基于我优秀的documentation拿出了一个样例应用,请看我的repo。

您的参与者应该实现IRemindable接口。 要创建提醒,请在参与者方法中使用以下代码:

await RegisterReminderAsync(
            "MyReminder", // name of the reminder
            Encoding.ASCII.GetBytes(message), // byte array with payload (message is a string in my case)
            dueTime, // When is the reminder first activated
            snoozeTime); // Interval between activations

在您的情况下,请将snoozetime设置为一天或一周,以便每段时间都激活提醒。

当到达到期时间时,调用方法ReceiveReminderAsync

public Task ReceiveReminderAsync(string reminderName, byte[] state, TimeSpan dueTime, TimeSpan period)
{
    ActorEventSource.Current.Message($"Actor recieved reminder {reminderName}.");

    ...
}

您可以根据ReceiveReminderAsync的值判断它是关于哪个提醒,并且可以使用state的内容对负载执行操作。

若要取消提醒,请使用UnregisterReminderAsync方法:

await UnregisterReminderAsync(GetReminder("MyReminder"));  

这篇关于如何使用DER机制在服务结构中调度任务?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)