我正在编写一个带角流星的预约安排应用程序。其中一项要求是将文本通知发送给预约的客户。客户提供一个手机号码。但基本上,我想要做的就是在预约时间前的几分钟发送一封电子邮件。运行角流星堆,可能是最好的方法来做到这一点?所有的约会信息都保存到mongo数据库中。使用Angular-Meteor运行计划任务的最理想方式
回答
您可能会感兴趣流星job-collection组(没有具体到角流星):
的流星持久性和无作业队列,支持分布式的工人,可以在任何地方运行。
作业集是一个功能强大且易于使用的作业管理器,专为Meteor.js设计和构建。
它解决了以下问题(及以上):
- 调度作业在将来运行(和重复),跨服务器持续重启
- [...]
特别是job.after(someTimeBeforeAppointment)
// Server
var myJobs = JobCollection('myJobQueue');
// Start the myJobs queue running
myJobs.startJobServer();
// Create a Job (e.g. in a Meteor method)
var job = new Job(myJobs, 'jobType', jobData);
// Specify when it can run and save it.
job.after(someTimeBeforeAppointment).save();
// Server (or could be a different server!)
// How jobs should be processed.
myJobs.processJobs('jobType', function (job, done) {
var jobData = job.data;
// Do something… could be asynchronous.
job.done(); // or job.fail();
// Call done when work on this job has finished.
done();
});
pollInterval
可以在processJobs
options中指定。默认是每5秒。
编写一个节点脚本,用于向运行X分钟和X + 10分钟之间约会的每位客户发送电子邮件。发送邮件后,在mongo的约会上设置一个布尔标志,这样它不会被发送两次。
运行一个cron,每5分钟触发一次。
重叠应该确保没有任何东西滑过裂缝,并且标志将防止倍数被发送。
这将工作。我想我可以写一些服务器端,为每一个创建的约会添加一个cron作业。然后该cron将运行一个提供电子邮件地址的脚本。但是你的想法会把它变成一个批处理过程。 – gh0st
您不想动态添加cron,只需编写一个脚本来检查需要发送的通知。你还应该指出cron将它的日志输出到一个文件,以便你可以监视它的错误。 –
- 1. 计划任务运行
- 2. 计划任务运行
- 3. 运行myVBS计划任务
- 4. 通过C#更改计划任务的“运行方式”字段:
- 5. Django的芹菜 - 运行计划任务
- 6. Sitecore的计划任务不运行
- 7. joomla计划每秒运行的任务
- 8. 计划的任务运行.exe问题
- 9. 计划的PowerShell任务,卡住运行
- 10. C#运行使用Windows服务和XML的计划任务
- 11. 规划任务的最佳方式?
- 12. 如何在没有计划任务的情况下运行计划任务
- 13. 在运行电源shell脚本的计划任务中创建计划任务
- 14. 作为计划任务运行Microsoft Access
- 15. 计划任务已停止运行
- 16. 按计划任务运行Powershell脚本
- 17. Windows Phone 7计划任务运行
- 18. Spring 4.3.1计划任务运行两次
- 19. Powershell不从计划任务运行
- 20. 在python中运行计划任务
- 21. 从ASP.net运行Windows计划任务
- 22. 最好的方法,使计划任务与Web应用程序
- 23. 运行具有最高权限的计划任务
- 24. 处理任务计划
- 25. 如何使用可执行jar运行弹簧计划任务
- 26. WebClient计划任务计划任务
- 27. 计划任务以在每月结束时运行。 (Windows Server 2003 - 计划任务)
- 28. 如何在计划任务后执行任务x运行y
- 29. 使用计划任务
- 30. 使用计划的PowerShell任务运行远程脚本超时
这很诱人。我一定会进一步研究。 – gh0st
你有这个套餐的经验吗? – gh0st