我在Laravel项目中有一份工作(第4.2节)。用于将数据插入数据库。名为“ProductUpdate”的类。我使用Amazon SQS进行队列服务。
现在让我感到困惑的是,当我更改“ProductUpdate”类中的代码时, 似乎该作业是使用旧版本的类运行的。
我甚至删除了类中的所有代码行,但作业仍然可以运行(它仍然可以插入数据)。
以下是工作班。
此课程的文件位于app / jobs / ProductUpdate.php
根据我的理解,作业类是唯一可以从队列中调用的地方,但为什么在删除所有代码时它仍然可以运行?
<?php
/**
* Here is a class to run a queued item sent from SQS
* Default method to use is fire()
**/
class ProductUpdate
{
public function fire($job, $data)
{
// Disable query log
DB::connection()->disableQueryLog();
// Set the job as a var so it will be used across functions
$this->job = $job;
$product = Product::find($productID);
if($product->product_type != 18) {
// Call the updater from library
$updater = App::make('Product\PriceUpdater');
$updater->update($product);
}
// Done and delete
$this->success();
}
private function success()
{
$this->job->delete();
}
private function fail($messages = array())
{
Log::error('Job processing fail', $messages);
$this->job->delete();
}
}
答案 0 :(得分:1)
您的问题与缓存有关。
在终端中运行此命令以删除所有缓存的数据。
php artisan cache:clear
其他方式: -
Illuminate\Cache\FileStore
具有flush功能,因此您也可以使用它:
Cache::flush();
此link也可以帮助您:)