$schedule->command('crawler') ->everyFiveMinutes() ->withoutOverlapPing() ->sendOutputTo('../_laravel/storage/logs/scheduler-log.txt');
所以它的效果非常好,但是目前我有大约220页的时间需要3个小时的时间才能完成5分钟的增量,因为我迫使它每隔一段时间抓取10页,因为每个页面需要20-30秒才能爬行因素.每个页面都是数据库中的一个记录.如果我最终有10,000个网页要抓取,则此方法将无法正常工作,因为它需要超过24小时,每个页面应该每天重新爬行一次.
所以我的供应商允许多达10个并发请求(或更多的更高的计划),那么同时运行它的最佳方法是什么?如果我只是复制调度程序代码,它是否运行相同的命令两次或10次,如果我复制10次?任何会造成的问题
然后我需要传递参数到控制台,如1,2,3,等等,我可以使用它来确定要抓取哪些页面?即1个将是1-10个记录,2个将是11-20个记录,等等.
使用这个StackOverfow的答案,我想我知道如何传递它,像这样:
$schedule->command('crawler --sequence=1')
但是如何在我的Command类中读取该参数?它只是成为一个常规的PHP变量,即$序列?
>更好地使用队列进行作业处理在cron上,添加所有作业到队列
>运行多个队列工作者,这将并行处理作业
提示:发生在我们身上.可能会发生以前添加的作业不完整,但是cron再次添加相同的任务.队列顺序运行.为了避免这种情况,您应该在上次完成任务时,在数据库标记中,以便您知道执行任务的时间(如果严重延误)
总结以上是内存溢出为你收集整理的php – Laravel运行多个计划任务全部内容,希望文章能够帮你解决php – Laravel运行多个计划任务所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)