是否可以通过在服务总线上运行的 MassTransit 为消息传递设置重复计划?
如果是这样,是否有任何示例代码可用?
还是构建一个类似于 Quartz Scheduler 服务但以 Azure Scheduler 为目标的服务更好?
是否可以通过在服务总线上运行的 MassTransit 为消息传递设置重复计划?
如果是这样,是否有任何示例代码可用?
还是构建一个类似于 Quartz Scheduler 服务但以 Azure Scheduler 为目标的服务更好?
如果您使用的是 Azure,您有三个选项,
在 Azure 逻辑应用中,您可以构建工作流以通过“重复”触发器迁移日期。
在 Azure Functions 中,您可以使用 Timer Trigger 并使用 Azure Service Bus SDK / REST API编写自己的逻辑。您可以在此处找到有关 C# 脚本的 Timer Trigger 的更多信息,但您也可以使用 JS、F# 等。如果您使用 Azure Function,如果计划时间是每 5 分钟一次,function.json
则将编码如下
{
"schedule": "0 */5 * * * *",
"name": "myTimer",
"type": "timerTrigger",
"direction": "in"
}
该函数的代码将如下所示
public static void Run(TimerInfo myTimer, ILogger log)
{
const string ServiceBusConnectionString = "<your_connection_string>";
const string QueueName = "<your_queue_name>";
static IQueueClient queueClient
if (myTimer.IsPastDue)
{
log.LogInformation("Timer is running late!");
}
queueClient = new QueueClient(ServiceBusConnectionString, QueueName);
// Your logic to read to write message
}
我正在使用用于 Azure 服务总线的 .NET SDK,您可以在此处找到参考。如果你是 Azure Functions 的新手,C# 脚本函数的工作方式会略有不同。引用 dll 的方法是不同的。你可以在这里找到它。
对于 Azure Web Jobs,它作为 Azure Web 应用程序的一部分运行。对于 Azure Web 作业,您也可以使用控制台应用程序模板编写 Web 作业。您也可以使用上述相同的 Azure 服务总线 SDK 来开发 Web 作业。在此处查找 Azure Web Jobs 的文档。