Laravel从不停地打电话课?

时间:2016-01-29 08:16:11

标签: php laravel amazon-sqs

我在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();
    }
}

1 个答案:

答案 0 :(得分:1)

您的问题与缓存有关。

在终端中运行此命令以删除所有缓存的数据。

php artisan cache:clear

其他方式: -

Illuminate\Cache\FileStore具有flush功能,因此您也可以使用它:

Cache::flush();

link也可以帮助您:)