【问题标题】:Performing tasks at different times for different users after subscriptions订阅后不同用户在不同时间执行任务
【发布时间】:2017-12-28 07:05:17
【问题描述】:

所以这里是问题陈述。我有一项服务于移动设备的服务。触发事件的每个用户都会向服务发送消息以注册自己。之后,服务从注册时开始定期(比如 5 分钟)执行一组特定的任务。因此,每个用户的执行时间会根据注册时间而有所不同。

我使用线程和计时器实现了这一点,它在一定程度上起作用,但是随着用户的增加,线程被杀死并且任务没有完成。此服务也托管在 azure 上。我创建了一个带有 WebHtpp 绑定的 WCF 服务,它接受并返回 JSON 数据。

网络工作是给我的建议。但由于执行时间不同,我也无法使用它。是否可以使用 C# 和 asp.net 执行这样的任务,还是我完全走错了方向。

【问题讨论】:

  • 为什么不设置一个固定的时间间隔:创建一个在那个时候为所有注册设备执行任务的进程。因此,一旦注册了设备,它最多需要等待 4.99 分钟,然后才能启动该设备的任务。这样您就不必保留很多计时器或类似的东西。

标签: c# multithreading wcf azure


【解决方案1】:

您需要确定在完成之前停止线程的瓶颈在哪里。

我会使用另一种方法来解决这个问题:每个新用户都将消息放入队列中,然后创建一个 Azure 函数来使消息出队并执行服务逻辑。这样一来,您的应用程序将更好地扩展,并且您将通过无服务器方法节省资金。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多