【问题标题】:How to allow the user to create tasks and set the time when it runs?如何允许用户创建任务并设置运行时间?
【发布时间】:2020-08-01 08:06:36
【问题描述】:

我正在构建一个允许用户向他的客户发送通知的项目。

我希望用户现在也能够安排这些通知在特定时间运行。

我将如何实现这一目标?最好的结构是什么?我是否应该创建一个每秒访问服务器的 cron 作业以检查是否在这一秒设置了任务?

【问题讨论】:

  • 我正在考虑使用 Hangfire 并每秒运行一次后台任务。任务是检查数据库中的预定通知,一旦发布它们,任务就会发布它们。这样做有意义吗?还是每秒检查一次数据库听起来没有必要并且可以更好地处理?

标签: c# azure asp.net-core infrastructure


【解决方案1】:

您可以创建自己的代码来按计划运行任务,但是已经有几个 3d 派对工具可以做到这一点。我建议你看看 HangfireQuartz.NET

【讨论】:

  • 这些能保证任务会运行吗?即使服务器已经重启?
  • 是的,他们将待办事项列表保存到他们的数据库中
【解决方案2】:

我建议从您的客户那里获取详细信息,但在后端将详细信息传递给逻辑应用或电源流,这些应用可以基于计时器在这些应用中创建作业。我会推荐 Power Flow,因为您可以开箱即用地使用它,而对于逻辑应用程序,您可能必须先配置逻辑应用程序。当您将问题标记到 Azure 时,我猜您正在使用 azure stack。

如果不是以上建议可能对您不起作用。

【讨论】:

  • 有没有办法在任务被传递到逻辑应用后更新它?
  • 您可以创建一个服务原则,该原则将在 Web 应用程序和逻辑应用程序之间建立通信。您的后端进程可以获取用户在数据库/应用程序中输入的任何详细信息并更新相应的逻辑应用程序作业。您需要做的就是将逻辑应用作业 ID 存储在数据库中或将潮流 ID 存储在数据库中,并在将 XML 代码发布到逻辑应用之前对其进行编译。我能想到的其他工具是 Azure 函数。这实际上可能是一个更好的选择在下面的文章docs.microsoft.com/en-us/azure/azure-functions/…
猜你喜欢
  • 2015-04-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-16
  • 2021-09-08
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
相关资源
最近更新 更多