如何使用DER机制在服务结构中调度任务? [英] How to schedule a task in service fabric using 'Ac­tor Remin­der' mechanism?

查看:74
本文介绍了如何使用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机制在服务结构中调度任务?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆