Algorithm 创建任务调度器的策略

Algorithm 创建任务调度器的策略,algorithm,mobile,server,scheduled-tasks,Algorithm,Mobile,Server,Scheduled Tasks,我正在创建一个应用程序,允许用户与朋友安排重复任务。我正在考虑创建调度队列的方法 第一种方法是让服务器处理任务。可以创建任务,并在服务器上运行调度算法,该服务器将向相关用户发送通知。这种方法的问题是,如果有许多用户在使用它,它会使服务器过载 第二种方法是让用户应用程序作为后台服务处理移动设备上的任务调度,这将是理想的,因为它不会使服务器过载。这种方法的缺点是通知将取决于用户电话的状态(互联网连接、开/关等) 这两种方法中哪一种是理想的,或者有其他方法来解决这个问题 我很擅长在服务器上运行此功能,

我正在创建一个应用程序,允许用户与朋友安排重复任务。我正在考虑创建调度队列的方法

第一种方法是让服务器处理任务。可以创建任务,并在服务器上运行调度算法,该服务器将向相关用户发送通知。这种方法的问题是,如果有许多用户在使用它,它会使服务器过载

第二种方法是让用户应用程序作为后台服务处理移动设备上的任务调度,这将是理想的,因为它不会使服务器过载。这种方法的缺点是通知将取决于用户电话的状态(互联网连接、开/关等)


这两种方法中哪一种是理想的,或者有其他方法来解决这个问题

我很擅长在服务器上运行此功能,因为它有以下优点:

  • 只有一个地方可以保存一个通知的所有详细信息(例如消息文本、时间表)。这确保了我们不会以某种方式导致客户端在其客户端应用程序中具有不同的通知数据。如果通知详细信息可以更新,或者可以添加新朋友,这将导致更简单的逻辑。虽然有时会被低估,但我认为简单性应该是架构选择中的一个重要标准

  • 水平扩展似乎相对容易——可以在多台机器上设置多个消息队列,而不会在队列之间产生干扰


将通知详细信息保留在服务器上,只保留应用程序上的调度程序如何。这将确保通知数据保持不变。我认为通知详细信息还包括对调度器很重要的方面,例如通知间隔。在这种情况下,需要在客户端应用程序上保持通知间隔,这会遇到我在帖子中提到的困难。你介意分享你最后选择的吗?你对这个决定满意吗?