在OrderStatusActor构造方法中调用StartTimerAsync
StartTimerAsync("test-timer", "this is a test timer").ConfigureAwait(false).GetAwaiter().GetResult();
通过调用paid接口实例化一个Actor,即可开启timer
查看控制台,timer触发成功
== APP == info: FrontEnd.ActorDefine.OrderStatusActor[0]
== APP == Timer fired: this is a test timer
TimerCallbackAsync
方法以二进制形式接收用户状态。 在示例中,回调在将状态写入日志之前将状态 string
解码回 。
可以通过调用 来停止计时器 UnregisterTimerAsync
:
public Task StopTimerAsync(string name)
{
return UnregisterTimerAsync(name);
}
使用Actor基类的 RegisterReminderAsync 方法计划计时器。在OrderStatusActor类中新增方法
public Task SetReminderAsync(string text)
{
return RegisterReminderAsync(
"test-reminder",
Encoding.UTF8.GetBytes(text),
TimeSpan.Zero,
TimeSpan.FromSeconds(1));
}
public Task ReceiveReminderAsync(
string reminderName, byte[] state,
TimeSpan dueTime, TimeSpan period)
{
if (reminderName == "test-reminder")
{
var text = Encoding.UTF8.GetString(state);
Logger.LogWarning($"reminder fired: {text}");
}
return Task.CompletedTask;
}
RegisterReminderAsync
方法类似于 RegisterTimerAsync
,但不必显式指定回调方法。 如上面的示例所示,实现 IRemindable.ReceiveReminderAsync
以处理触发的提醒。
public class OrderStatusActor : Actor, IOrderStatusActor, IRemindable
ReceiveReminderAsync
触发提醒时调用 方法。 它采用 4 个参数:
在OrderStatusActor构造方法中调用SetReminderAsync
SetReminderAsync("this is a test reminder").ConfigureAwait(false).GetAwaiter().GetResult();
通过调用paid接口实例化一个Actor,即可开启reminder
查看控制台,reminder触发成功
== APP == warn: FrontEnd.ActorDefine.OrderStatusActor[0]
== APP == reminder fired: this is a test reminder
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。