У меня есть работа в моем проекте Laravel (v.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();
}
}
Ваша проблема связана с кешем.
Запустите эту команду в терминале, чтобы удалить все кэшированные данные.
php artisan cache:clear
другой путь:-
Illuminate\Cache\FileStore
имеет функцию сброса, так что вы также можете использовать ее:
Cache::flush();
это ссылка на сайт также поможет вам 🙂
Других решений пока нет …