使用cron作业为每个用户安排可变时间的每日通知

迈克尔

我有一个网站,每个用户都可以选择在每天选择的时间接收每日电子邮件提醒(为简单起见,假设使用相同的时区)。

因此,在他的个人资料中有一个输入框,其中包含“一天中的时间以接收电子邮件提醒”。

如何在CRON工作中实现这一目标?

我想到了每分钟运行一次这样的事情:

SELECT `id`,`email` FROM `reg_users` WHERE `start_time` >= $time_now

问题是它将发送多个电子邮件。

所以也许,对于每个匹配项,在发送电子邮件后都要更新一个标志。

UPDATE reg_users SET sent_already = 1;

然后上面的查询将是

SELECT `id`,`email` FROM `reg_users` WHERE `start_time` >= $time_now AND `sent_already` = 0;

但随后需要UPDATE在一天结束时将所有记录sent_already = 0复制第二个CRON作业中。似乎有点草率。

有人有更好的解决方案吗?

班级

让cron运行x分钟,运行类似内容。

SELECT `cols` FROM `Emails_Queue` WHERE `Timestamp` <= NOW() LIMIT 0,50

另外,您应该限制查询的数量,以免将您一次发送的垃圾邮件数量标记为“垃圾邮件发送者50”。我相信现在是DATETIME格式。

然后,您发送的电子邮件没有错误,请删除带有某种ID(从选择项中提取)的电子邮件,以便使用类似的方法删除正确的电子邮件。

DELETE FROM `Emails_Queue` WHERE `colid` = ?

插入问题。您可以用类似的方法进行检查。

SELECT `cols` FROM `Emails_Queue` WHERE `User` = ? AND `Timestamp` = ?

然后,如果没有返回结果。

或您可能有一个与UserAND之类的组合键Timestamp并有一个,ON UPDATE NO ACTION但这仅在您的数据库引擎支持键的情况下才有效。然后,您可以执行以下操作。

INSERT INTO `Emails_Queue` (`cols`) VALUES (val)

或者,您也可以让cron即时创建它们。

SELECT `cols` FROM `Emails_Queue` WHERE `Not_Sent` = TRUE AND `Timestamp` <= NOW() LIMIT 0,50

然后发送电子邮件。

UPDATE `Emails_Queue` SET `Not_Sent` = FALSE WHERE `User` = ?

并每周通过cron执行以下操作。

UPDATE `Emails_Queue` SET `Not_Sent` = TRUE WHERE `Not_Sent` = FALSE

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

复杂Cron作业时间安排-Linux

来自分类Dev

使用cron作业为每个用户安排可变时间的每日通知

来自分类Dev

如何使用cron作业安排动态功能?

来自分类Dev

Quartz Scheduler(cron)可以在同一执行时间安排多个作业吗?

来自分类Dev

使用FileZilla安排每日自动上传

来自分类Dev

根据用户时间决定将Celery用于Cron作业时间

来自分类Dev

在laravel时间间隔中安排作业

来自分类Dev

我们可以配置HangFire以在每个时间间隔为每个用户安排作业吗?

来自分类Dev

CRON作业-为不同时区安排Laravel命令-为不同地区进行管理

来自分类Dev

如何安排每个新月的node-cron作业?

来自分类Dev

如何使用cron作业安排动态功能?

来自分类Dev

Quartz Scheduler(cron)可以在同一执行时间安排多个作业吗?

来自分类Dev

cron作业设置为不同的时间,但同时执行。

来自分类Dev

Cron作业和邮件通知

来自分类Dev

安排特定时间的cron作业

来自分类Dev

如何使用SWIFT为特定用户安排不同的推送通知

来自分类Dev

如何在Linux中安排cron作业?

来自分类Dev

Rails Capistrano-每当Cron为每个部署追加cron作业时

来自分类Dev

如何使用Azure CRON Expression安排时间间隔并在特定的日期和时间开始

来自分类Dev

无法从Cron作业发送通知

来自分类Dev

Laravel在主机上安排cron作业

来自分类Dev

每日 cron 作业活跃或不活跃数月

来自分类Dev

如何安排作业在不同时间为不同用户运行

来自分类Dev

Spring 和 FCM 为每个用户设置不同的通知时间

来自分类Dev

没有为 nodejs 的特定用户运行 Cron 作业

来自分类Dev

用于在特定时间段之间安排作业的 Cron 表达式

来自分类Dev

获取可变时间段的每日变化

来自分类Dev

Cron 作业每日计划

来自分类Dev

Python crontab 在特定时间安排作业

Related 相关文章

  1. 1

    复杂Cron作业时间安排-Linux

  2. 2

    使用cron作业为每个用户安排可变时间的每日通知

  3. 3

    如何使用cron作业安排动态功能?

  4. 4

    Quartz Scheduler(cron)可以在同一执行时间安排多个作业吗?

  5. 5

    使用FileZilla安排每日自动上传

  6. 6

    根据用户时间决定将Celery用于Cron作业时间

  7. 7

    在laravel时间间隔中安排作业

  8. 8

    我们可以配置HangFire以在每个时间间隔为每个用户安排作业吗?

  9. 9

    CRON作业-为不同时区安排Laravel命令-为不同地区进行管理

  10. 10

    如何安排每个新月的node-cron作业?

  11. 11

    如何使用cron作业安排动态功能?

  12. 12

    Quartz Scheduler(cron)可以在同一执行时间安排多个作业吗?

  13. 13

    cron作业设置为不同的时间,但同时执行。

  14. 14

    Cron作业和邮件通知

  15. 15

    安排特定时间的cron作业

  16. 16

    如何使用SWIFT为特定用户安排不同的推送通知

  17. 17

    如何在Linux中安排cron作业?

  18. 18

    Rails Capistrano-每当Cron为每个部署追加cron作业时

  19. 19

    如何使用Azure CRON Expression安排时间间隔并在特定的日期和时间开始

  20. 20

    无法从Cron作业发送通知

  21. 21

    Laravel在主机上安排cron作业

  22. 22

    每日 cron 作业活跃或不活跃数月

  23. 23

    如何安排作业在不同时间为不同用户运行

  24. 24

    Spring 和 FCM 为每个用户设置不同的通知时间

  25. 25

    没有为 nodejs 的特定用户运行 Cron 作业

  26. 26

    用于在特定时间段之间安排作业的 Cron 表达式

  27. 27

    获取可变时间段的每日变化

  28. 28

    Cron 作业每日计划

  29. 29

    Python crontab 在特定时间安排作业

热门标签

归档