【问题标题】:Should we put a timer on server or mobile?我们应该在服务器或移动设备上设置计时器吗?
【发布时间】:2020-09-16 13:03:27
【问题描述】:

我在服务器端(开始)和移动端工作。有一件有趣的事情,但我缺乏做决定的经验。我很感激你们的任何帮助。

I have to send an email after 50 minutes

1/ 如果我们为服务器上的每封电子邮件设置一个计时器,那么 1000 个用户,1000 个计时器?

2/ 如果我们在手机上处理,有一种情况是应用程序的所有内容在发送电子邮件之前都被操作系统杀死。

问题是:服务器和移动,哪个更好?

请告诉我您的解决方案。提前谢谢你!

【问题讨论】:

    标签: php android ios


    【解决方案1】:

    在服务器上使用queue 系统。创建用于发送电子邮件的队列。

    当您想发送电子邮件时,只需将其推送到队列中,在您的情况下使用时间或日期时间。然后运行Cron Job 来检查、处理和发送电子邮件。

    此外,请确保实现重试功能,这样即使电子邮件发送失败,Cron 也会再次接受该工作并尝试发送number of times

    这些链接会有所帮助:

    Managing Cron Jobs in PHP

    Setting Up Cron in Ubuntu

    Setting up Cron using cPanel

    如果您对如何设置 Cron 计时感到困惑,请查看此网站:

    CronTab Guru

    【讨论】:

    • 假设需要以某种方式处理故障。自动重试是否合适取决于要求和失败原因。有些失败你可能不应该尝试重试。
    • @HarishST:感谢您的快速回复。我们可以使用 PHP 制作 Cron Job 吗?
    • @SMor 是的,很明显。重试失败的案例总是取决于你提到的一些参数。但一般来说,您应该始终尝试捕获错误,并且取决于收到的错误,您可以尝试再次发送它。显然,如果错误是无法恢复的,那么就没有理由尝试再次发送它。这就是为什么作为开始阶段我在我的答案中包含了number of try。如果即使我们无法捕捉到错误,那么在number of times 之后不应运行该作业。
    • @LuongTruong 是的,你可以。您可以在您的操作系统上设置一个 Cron(我认为是 Windows 中的调度程序)。如果您使用的是 cPanel,那么您可以在 UI 的帮助下找到设置 Cron 的选项。如果你一般在 Linux 机器上,你可以设置 Cron。我将在答案中添加对材料的必要参考。
    【解决方案2】:

    最好在您的服务器上实现计时器。如果您在设备上实现定时器,可能会发生并阻止该功能的负面可能性是设备处于关机模式或设备无法连接到服务器触发发送电子邮件。

    服务器instance 应该是长期存在的,它永远不会宕机,这对于您的情况可能更可靠,正如@Harish ST 的回答,您可以从 cron 作业/cron 任务中获利。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多