我正在尝试运行一个调度程序,该调度程序每分钟获取比特币价格并将其添加到数据库中,但是我无法使幼虫调度程序正常运行。
我已经在单独的php页面中测试了sql代码,它可以工作,但是调度程序似乎没有运行
计划功能在kernel.php中 处理功能在Jobs / UpdateRates中
protected function schedule(Schedule $schedule)
{
$schedule->job(new \App\Jobs\UpdateRates)->everyMinute();
}
public function handle()
{
$url = "https://bitpay.com/api/rates";
$json = file_get_contents($url);
$data = json_decode($json, TRUE);
$rate = $data[1]["rate"];
$usd_price = 10; # Let cost of elephant be 10$
$bitcoin_price = round( $usd_price / $rate , 8 );
DB::insert('insert into settings (bitcoin_rate, monero_rate) values (?, ?)', [0, 1]);
}
答案 0 :(得分:1)
您需要添加到cron:
vim / etc / crontab
修复您的项目路径,添加此行
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
这就是所谓的Laravel,然后您就可以在Laravel项目中完成其余的调度工作。
现在您可以添加这样的任务,而不必担心再次更新cron。
protected function schedule(Schedule $schedule)
{
$schedule->job(new DailyEmailReports)->dailyAt();
$schedule->job(new SomeOtherThing)->hourly();
$schedule->job(new SomeElse)->everyFiveMinutes();
}