首页 > 解决方案 > 节点JS | 蟒蛇 | Heroku - 在表单发布后 48 小时安排电子邮件

问题描述

我用 ReactJS + NodeJS 制作了一个 PWA,运行一个 python 后端,该后端由 Node 服务器作为子进程生成,我必须在调用付款验证 48 小时后通过电子邮件发送并生成由 python 生成的文档,如何我要做到这一点吗?我目前的方法包括:

def sendInTwoDays(recipient, filename):
    time = round(random.uniform(0.8, 2.0), 2)
    time = round(time * 24 * 3600, 2)
    time /= 10000 #for testing
    print("[python:sendInTwoDays()] > Sleep ({} seconds) : {} days".format(time, time/3600))
    sleep(time)
    sendNow(recipient, filename)

我讨厌它,因为它使用“sleep()”并且在网络服务器上睡觉并不适合我。

请提出一种更好的方法来在heroku上完成同样的任务。

标签: python-3.xherokuscheduled-tasksnodejs-server

解决方案


我建议使用 Heroku Scheduler 的调度(cron)方法,例如每十五分钟检查一次到期的电子邮件。我不会让这个过程等待 48 小时,而是将电子邮件数据与电子邮件发送时间一起保存在数据库中,并让调度程序可以调用 API/任务来调用 Python 脚本以输出和电子邮件文档,这些文档将在 48 小时后到期. 电子邮件不会在 48 小时后发出,但应该是关闭的。


推荐阅读