我有一个“从XLS导入”选项的系统,xls包含十万或十个电子邮件,用户上传文件,该文件被添加到一个队列(Queue :: push)。我的问题是我在Windows调度程序中设置了一个cron,用于验证列表中的电子邮件,Queue需要一段时间处理电子邮件以验证使用dns记录和mxhosts,因此人们将不得不等待很多。假设验证每个文件需要几个小时,队列中有10个文件,最后一个要上传的文件需要等待几个小时。运行多个命令是否安全?随着人们开始更多地使用它,过程的数量会有所不同。还有其他方法让它同时运行吗?
答案 0 :(得分:2)
您可以让CRON作业每隔 n 秒运行一次,CRON将能够同时完成工作,而无需等待其他以前的工作。
您可能会遇到竞争条件,其中一个填充可能会被多个作业处理。为避免这种情况,您需要在每个处理记录上实现锁定系统。
因此,如果一个CRON作业或进程访问或处理文件X,则后续CRON不应该获取该文件并选择要处理的下一个文件。
这样可以避免文件等待时间过长。