PHP致命错误:方法_exists():脚本试图执行方法或访问不完整对象Laravel 5.3的属性

PHP致命错误:方法_exists():脚本试图执行方法或访问不完整对象Laravel 5.3的属性,php,laravel,laravel-5,cron,queue,Php,Laravel,Laravel 5,Cron,Queue,问题是,我有两个Laravel项目在Laravel5.1和5.3上工作,并共享公共数据库。这两个项目都被放置在不同的子域上并启动运行。 现在,在使用queue驱动程序作为数据库时,我使用5.3demon在5.1队列作业上运行,我遇到以下错误 PHP Fatal error: method_exists(): The script tried to execute a method or access a property of an incomplete object. Please ensu

问题是,我有两个Laravel项目在Laravel
5.1
5.3
上工作,并共享公共数据库。这两个项目都被放置在不同的子域上并启动运行。 现在,在使用
queue
驱动程序作为
数据库时,我使用
5.3
demon在
5.1
队列作业上运行,我遇到以下错误

PHP Fatal error:  method_exists(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "App\Jobs\StoreAppliedjob" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition  in /Applications/MAMP/htdocs/admin-badiyajobs/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php on line 83

                                                                                                                                                                                                                                                                                                                        [Symfony\Component\Debug\Exception\FatalErrorException]       

当在
5.1
上运行队列侦听器时,
5.1
队列工作正常。请注意,我不能在两个项目上使用单独的
cron
来处理队列,因为这会把一切都搞糟。请建议我该怎么做

队列在将作业发送到队列之前序列化作业,并在处理作业时取消序列化作业。您需要在处理位置使用
App\Jobs\StoreAppliedjob

您能给出一个示例或参考方法吗。直到现在我才发现有必要这么做。据我所知,你们有两个项目,你们的5.3项目处理5.1项目中的工作。就其本身而言,作业接口和序列化或多或少是相同的,这不应该构成真正的问题。但是从5.1项目推送到队列的
App\Jobs\StoreAppliedjob
也应该存在于具有相同名称空间的5.3项目中,否则队列处理程序unserialize无法处理它。不过,我不知道处理该作业需要多少“其他”代码。通常,相关模型、回购协议等存在于推动工作的代码库中。为了处理而将代码从一个项目复制到另一个项目,因为它恰好有正在运行的队列工作程序,这不是一个好的解决方案。实际上,我检查了这两个版本如何处理作业。有很多不同之处。。因此,我改为使用
Event
。只要您想在相同的请求周期中处理它,那么使用events就可以选择yes。但是有些代码应该异步处理:)