我听说过cron的工作,并且不认为它的实际创建会很难实现,但我对如何使用大型脚本有一些担忧。
如果我的项目没有太多偏离主题,我将坚持我的情况的基础知识。我需要创建一个脚本,每天对远程网站上的数据执行CURL提取,并使用它为我网站上的每个特色成员更新数据库。简而言之,此时大约需要执行1000次脚本,但随着时间的推移,它将是一个更大的数字。
你可以猜到,这需要很长时间才能完成,所以我担心执行会如何以不会崩溃的方式运行。
我的第一个想法是将用户分成小组,每次都在少量用户上执行,但不知道这是如何管理的(当我得到某种形式的确认时,会进一步阅读有关该主题的内容在此)。
所以,对我的问题。你认为我有什么方法可以实现这一目标吗?你是否有任何关于如何使其有效运作的建议?我能得到的所有帮助表示赞赏。感谢您的时间。
答案 0 :(得分:1)
根据您的描述,有两个方面需要考虑:
我建议使用一个支离破碎的解决方案,您可以更频繁地从cron调用脚本,并让脚本只执行少量的总工作。如果i / o-bandwith或cpu-usage高于可能影响访问者响应时间的任何限制,则应进一步取消该作业(推迟到下一次运行)。
的问候, /吨
答案 1 :(得分:0)
单向:
我通常反对在数据库中放置逻辑,但在这种情况下,stored procedure可能有所帮助。它会更快地运行你的工作(因为它是一个很大的工作),你也想要锁定表。这样,如果调用存储过程的脚本在原始作业结束之前被cron命中,它就不会在第一个数据库运行时编辑数据库。
答案 2 :(得分:0)
实际的时间我不能给 直接回答但基于 以前经历这将需要 比最长执行时间更长。
所以解决这个问题。有一个原因,您可以为命令行界面使用不同的php.ini。然后,您可以专注于在一个脚本中处理所有用户。
答案 3 :(得分:0)
我很担心如何执行 将以不崩溃的方式工作 在它的中间
当出现问题时,您可能需要使用消息队列系统进行故障转移
http://blog.fedecarg.com/2008/11/03/getting-started-with-message-queues/
答案 4 :(得分:0)
我使用cron job文件解决了该程序,因为cron job文件很小。如果您使用的是PHP,则可以将cron作业设置为domain / cronjob1.php,domain / cronjob2.php限制数据库,使
为10performUpdate()
进入cronjob 1,其余的进入cronjo2