-
Notifications
You must be signed in to change notification settings - Fork 187
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
php think queue:work --queue helloJobQueue 执行没有结果? #2
Comments
@Tinywan 你好,windows 环境是可以执行任务的。 |
@coolseven 非常感谢
|
@coolseven 好啊!
|
@coolseven 互学,一起... |
@coolseven 使用队列做一个Excel 数据的导出
|
@Tinywan 我的理解是你的环境中没有设置常驻的队列服务,而是希望在遇到耗时任务的时候能够通过控制器来临时启动一个一次性的工作进程?
Queue::push();
$command = 'queue:work' ;
$params = ['queue' => $queue , 'sleep' => 3]; // (注:这个写法是错误的,后面有说明)
$result = \think\Console::call($command ,$params);
Queue::push();
$command = 'php think queue:work --queue '.$queue ;
pclose(popen($command , 'r')); |
@coolseven 理解的合适的
|
@Tinywan
对于上面的要求:
// linux
php think queue:work --queue YourQueue --sleep 3 --daemon 1>queue.log 2>&1 &
// windows
start /b php think queue:work --queue YourQueue --sleep 3 --daemon 1>queue.log 2>&1
// linux
nohup php think queue:work --queue YourQueue --sleep 3 --daemon 1>queue.log 2>&1 &
// windows 下似乎没有类似 nohup的命令,命令行窗口关闭之后,队列进程就强制结束了。。。
|
@Tinywan
有错误截图吗?怎么重现? |
@coolseven 我直接上代码,还是你那天提交的代码
|
$command = 'queue:work' ;
// $params = ['queue' => $queue , 'sleep' => 3]; // error : Too many arguments.
$params = ['--queue' => $queue , '--sleep' => 3]; // 修正后的写法(注:这个也是错误的,后面有说明)
$result = \think\Console::call($command ,$params);
我的思路是:
注意:你的需求中,存在“立刻”和“自动”两个关键词,然而,队列服务的目的是保证你的邮件会自动发送,但是无法保证立刻发送。因为你的消息在队列服务中是排着队等待被执行的,你推送的消息默认是排在最末尾的。 |
@coolseven 修改后也是一样的报错结果: |
@Tinywan |
@Tinywan $command = 'queue:work' ;
// $params = ['queue' => $queue , 'sleep' => 3]; // error : Too many arguments.
// $params = ['--queue' => $queue , '--sleep' => 3]; // error : Too many arguments.
$params = ['--queue=yourQueue' , '--sleep=3']; // 修正后的写法
$result = \think\Console::call($command ,$params); 你可以再试试 |
@coolseven OK了
|
@Tinywan
就拿windows环境来说,你可以试一下:
|
@Tinywan |
@coolseven 我昨天只是在Linux 做了个测试,也是要在命令行去执行的,TP5应该就是借鉴的这个做的。 |
@coolseven 我还是去Linxu去测试吧!Windows 搞不成事情 |
作者大大您好,我按照你的教程写了一个demo,队列已经成功建立,并且在redis里面可以看到队列数据。 |
@wellson1 配置文件就是固定的哈 |
您好 我执行 php think queue:work --queue helloJobQueue 执行没有结果 只有提示Processed: app\api\Jobcl\Jobc处理这个队列 我在看数据库 和 think log都没执行结果的记录 不知道问题出现在哪里 |
肯请作者大佬 指点一下 小弟刚学php不久 每次都掉坑 太悲惨了 |
???
…------------------ 原始邮件 ------------------
发件人: "coolseven/notes" ***@***.***>;
发送时间: 2022年3月23日(星期三) 中午12:20
***@***.***>;
***@***.***>;
主题: Re: [coolseven/notes] php think queue:work --queue helloJobQueue 执行没有结果? (#2)
肯请作者大佬 指点一下 小弟刚学php不久 每次都掉坑 太悲惨了
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
你好,按照你的案例能发布成功,但是无法执行该任务
执行结果(没有任何的输出结果)
这个必须在Linux 环境吗?我当前的是Windows 环境
The text was updated successfully, but these errors were encountered: