laravel - 为什么我的Laravel 5.2事件在本地工作时不能在生产中工作?

标签 laravel laravel-5 redis laradock

在本地,我的Laravel 5.2项目运行良好,包括使用Redis排队的事件。

IMPORTANT UPDATE: I later discovered that this premise was incorrect (and my events don't use Redis), and so I'd accidentally posted this question in a misleading way. I hope my ridiculously long struggle and my answer below will be helpful to someone else who is an events newbie too.



但是我已经将项目部署到了​​生产服务器(在这里我使用的是Laradock Docker安装程序)。

在生产中,Redis在工作时用于缓存和延迟分发作业。

所以我知道我的Redis设置很好。

但是事件不起作用(即使它们在我的项目在本地计算机上时也起作用)。

我的问题不是Laravel 5.2 event not firing in production的副本,因为我没有使用广播,而且因为我使用的是Laradock。

我也已经尝试过这些命令(在docker exec -it laradock_workspace_1 bash的容器内):
php artisan config:cache
php artisan clear-compiled
php artisan optimize
composer install --no-dev
composer dumpautoload
php artisan queue:restart

最佳答案

我的 Activity 正在制作中。这是我学到的:

  • 我已经读过很多次
  • ,但是我不知道为什么/为什么“事件”(对我来说是个新概念)依赖Redis或cron作业。 因此,我上面的问题的全部前提都是错误的! 我没有使用Illuminate\Contracts\Queue\ShouldQueue,所以一切都是同步的,应该比我想的更直接。
  • 我认为有关composer dumpautoloadphp artisan clear-compiledhttps://laravel.com/docs/5.2/events很有帮助(适用于在生产中每次编辑文件后)。
  • 主要问题似乎是我的某个数据库表中似乎有带有怪异值的记录,而这些记录正在由事件检查,而这一切都在中断。
  • 而且我认为这些记录可能已进入损坏状态,因为在生产中,我认为部署后我不会立即启动cronjobs和worker。
  • 我的本地环境正在工作,因为它的表没有这些损坏的记录。

  • 希望我的幼稚和误导性问题(导致这场荒谬的漫长斗争和这个答案)也将对其他 Activity 新手有所帮助。

    关于laravel - 为什么我的Laravel 5.2事件在本地工作时不能在生产中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57732175/

    相关文章:

    ruby-on-rails - 我在哪里可以只配置一次redis?

    azure - REDIS 作为 servlet/jsp 应用程序的 session 管理器

    php - Laravel created_at 返回对象代替数据库中的日期格式?

    ruby-on-rails - 如何一起使用 resque-scheduler 和 resque-status?

    php - Laravel:试图获取非对象的属性

    mysql - Laravel 中的条件 `orderBy` 或 `DB::Raw` inside `orderBy`

    php - Blade 不显示部分

    javascript - 我如何将 iCheck Checkbox 值传递给 Laravel?

    mysql - Laravel 5 - 找不到 MySQL 存储过程

    php - Laravel 5 API 授权用于使用 Facebook 进行授权的移动应用程序