我有这个奇怪的问题。
我已经在laravel 5.7应用程序中通过composer(https://packagist.org/packages/evert/sitemap-php)安装了一个软件包,并调用了composer dump-autoload命令
该软件包位于我的供应商目录中(在本地和产品环境中),但是我运行的作业仅在本地运行。
这是错误的堆栈跟踪(通过failed_jobs表捕获)
Symfony \ Component \ Debug \ Exception \ FatalThrowableError:在/home/forge/u-corsu.com/app/Jobs/CreateSitemap.php:60中找不到类'SitemapPHP \ Sitemap' 堆栈跟踪:
这是我的代码:
<?php
namespace App\Jobs;
use Storage;
use SitemapPHP\Sitemap;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
class CreateSitemap implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $path;
protected $ping;
protected $sitemapIndex;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($ping)
{
$this->sitemapIndex = env('APP_URL').'/storage/sitemap-index.xml';
$this->path = storage_path().'/app/public/';
$this->ping = $ping;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$this->cleanFiles();
$this->generateSitemap();
}
private function cleanFiles()
{
$files = Storage::files('public');
foreach ($files as $file) {
if (str_contains($file, 'sitemap')) {
Storage::delete($file);
}
}
}
private function generateSitemap()
{
$sitemap = new Sitemap(env('APP_URL'));
/*MY CODE*/
if ($this->ping) {
$this->pingGoogle();
}
}
public function pingGoogle()
{
$client = new \GuzzleHttp\Client();
$request = $client->request('GET', 'https://www.google.com/ping?sitemap='.$this->sitemapIndex);
}
}
我该如何解决这个问题?
谢谢
答案 0 :(得分:1)
我终于找到了我的问题。我忘记重新启动队列工作器,因此它使用的是旧版本的代码。