运行 一个无限循环的作业,休眠 x 秒
run a job as infinite loop with x sec sleep
我想连接到一个 api 并每 20 秒更新一次数据库中的一些数据
所以因为我想每 20 秒 运行 它对 cronjob 有点棘手,我想知道我是否可以为此使用队列和作业
我创造了一份工作
php artisan make:job UpdateData
并将我的代码放入 UpdateData 句柄中,类似于
public function handle()
{
$options = Option::all();
foreach ($options as $option)
{
$data = CURL($option->url );
$option->data = $data;
$option->save();
}
}
我是队列的新手,如果我理解正确,我需要创建一个队列 table,调用 queue:work 并在我的代码中的某处分派此作业,以便队列处理该作业
但在这种情况下,我只需要每 20 秒 运行 这项工作...没有派遣
基本上我需要一个无限循环,它们之间有 20 秒的睡眠运行在后台
所以我的问题是,这可能吗?如果是这样,我如何才能每隔 x 秒从命令行调度此作业?
Supervisor 是让你的脚本保持活力的一个很好的解决方案,或者你有 3 个选择:
- 始终保留您的应用程序的程序 运行ning
apt install supervisor
- 在 /etc/supervisor/conf.d/new-file.conf
配置主管
[program:your-program]
process_name=%(program_name)s
command=command that you need... exemple php artisan queue:work redis
autostart=true
autorestart=true
user=secure-user
redirect_stderr=true
stdout_logfile=/var/log/script-name.log
stopwaitsecs=3600
Laravel 中的任务安排非常简单,我认为您可以 运行 在特定时间和秒内:
Laravel Scheduling Script
Crontab
您将有一些选择 post:
Cron 30 seconds 或脚本 bash.
所以我最终使用了一个命令,
基本上我创建了一个 laravel 命令,在命令 php 文件中放入 while(true)
循环
, 并在终端中调用命令
我想连接到一个 api 并每 20 秒更新一次数据库中的一些数据
所以因为我想每 20 秒 运行 它对 cronjob 有点棘手,我想知道我是否可以为此使用队列和作业
我创造了一份工作
php artisan make:job UpdateData
并将我的代码放入 UpdateData 句柄中,类似于
public function handle()
{
$options = Option::all();
foreach ($options as $option)
{
$data = CURL($option->url );
$option->data = $data;
$option->save();
}
}
我是队列的新手,如果我理解正确,我需要创建一个队列 table,调用 queue:work 并在我的代码中的某处分派此作业,以便队列处理该作业
但在这种情况下,我只需要每 20 秒 运行 这项工作...没有派遣 基本上我需要一个无限循环,它们之间有 20 秒的睡眠运行在后台
所以我的问题是,这可能吗?如果是这样,我如何才能每隔 x 秒从命令行调度此作业?
Supervisor 是让你的脚本保持活力的一个很好的解决方案,或者你有 3 个选择:
- 始终保留您的应用程序的程序 运行ning
apt install supervisor
- 在 /etc/supervisor/conf.d/new-file.conf 配置主管
[program:your-program]
process_name=%(program_name)s
command=command that you need... exemple php artisan queue:work redis
autostart=true
autorestart=true
user=secure-user
redirect_stderr=true
stdout_logfile=/var/log/script-name.log
stopwaitsecs=3600
Laravel 中的任务安排非常简单,我认为您可以 运行 在特定时间和秒内: Laravel Scheduling Script
Crontab 您将有一些选择 post: Cron 30 seconds 或脚本 bash.
所以我最终使用了一个命令,
基本上我创建了一个 laravel 命令,在命令 php 文件中放入 while(true)
循环
, 并在终端中调用命令