大概描述一下,现在有 2 个 artisan 命令,第一个就是根据用户提供的 oss 地址和其他参数将目录下的所有图片经过处理后入库,第二个就是把入库的这一批图片调用第三方接口进行处理并记录入库。现在我就是手动去执行这两个命令,想问下可以通过队列的方式来实现这个流程吗?比如用户在页面上输入 oss 地址和其他参数,提交后就自动执行第一个命令的任务,接着再执行第二个命令的任务。另外,如果我创建一个任务列表用来记录用户提交的任务,那任务完成了的话我可以获取到这个任务的状态吗?比如这个任务完成了,我就把这个任务记录的状态改成已完成。
请大佬们指教。谢谢啦
需要调用 artisan 命令,在应用内可以用。
IlluminateSupportFacadesArtisan::call($command,$options)
要注意,$options 接受一个键值对数组,和你手动调用一样,需要保证参数名前面的 - 和 --,
$options
-
--
分步骤投递到队列。用户提交参数后加入队列 创建任务,开始任务,执行第一个命令第一个命令执行完了后再把第二个命令也投进队列,完成任务就可以实现顺序投递。
1.2m questions
2.1m answers
5 comments
56.5k users