问题描述
在控制器中,我尝试使用 Bus-Facade 启动批处理。
$batch = Bus::batch([
new \App\Jobs\RemoveSalesrep(1),new \App\Jobs\RemoveSalesrep(1)
])->finally(function (Batch $batch) {
echo "Job done".PHP_EOL;
})->name('Remove Salesrep')
->dispatch()
;
我收到此错误
{
"message": "sqlSTATE[01000]: Warning: 1265 Data truncated for column 'id' at row 1 (sql: insert into `job_batches` (`id`,`name`,`total_jobs`,`pending_jobs`,`Failed_jobs`,`Failed_job_ids`,`options`,`created_at`,`cancelled_at`,`finished_at`) values (92b2c9ba-6d69-430f-9bf1-16752905a9c4,Delete_Salesrep,[],a:1:{s:7:\"finally\";a:1:{i:0;C:36:\"Illuminate\\Queue\\SerializableClosure\":274:{@W90beNUagraW+tkpzPDZUu3Hw1tomK8ByTsnw/n9uWg=.a:5:{s:3:\"use\";a:0:{}s:8:\"function\";s:59:\"function (\\Illuminate\\Bus\\Batch $batch) {\n }\";s:5:\"scope\";s:40:\"App\\Http\\Controllers\\AssetDataController\";s:4:\"this\";N;s:4:\"self\";s:32:\"000000003be0a0070000000036f37ab4\";}}}},1612965862,?,?))","exception": "Illuminate\\Database\\QueryException","file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Database/Connection.PHP","line": 678,"trace": [
{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Database/Connection.PHP","line": 638,"function": "runQueryCallback","class": "Illuminate\\Database\\Connection","type": "->"
},{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Database/Connection.PHP","line": 472,"function": "run","line": 424,"function": "statement",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.PHP","line": 2838,"function": "insert",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Bus/DatabaseBatchRepository.PHP","line": 99,"class": "Illuminate\\Database\\Query\\Builder",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Bus/PendingBatch.PHP","line": 226,"function": "store","class": "Illuminate\\Bus\\DatabaseBatchRepository",{
"file": "/var/www/clients/client0/web13/web/app/Http/Controllers/AssetDataController.PHP","line": 218,"function": "dispatch","class": "Illuminate\\Bus\\PendingBatch",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Routing/Controller.PHP","line": 54,"function": "removeSalesrep","class": "App\\Http\\Controllers\\AssetDataController",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Routing/Controllerdispatcher.PHP","line": 45,"function": "callAction","class": "Illuminate\\Routing\\Controller",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Routing/Route.PHP","line": 254,"class": "Illuminate\\Routing\\Controllerdispatcher","line": 197,"function": "runcontroller","class": "Illuminate\\Routing\\Route",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Routing/Router.PHP","line": 692,{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.PHP","line": 128,"function": "Illuminate\\Routing\\{closure}","class": "Illuminate\\Routing\\Router",{
"file": "/var/www/clients/client0/web13/web/app/Http/Middleware/UserData.PHP","line": 118,"function": "Illuminate\\Pipeline\\{closure}","class": "Illuminate\\Pipeline\\Pipeline","line": 167,"function": "handle","class": "App\\Http\\Middleware\\UserData",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.PHP","line": 41,"class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.PHP","line": 44,"class": "Illuminate\\Auth\\Middleware\\Authenticate",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrftoken.PHP","line": 78,"class": "Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrftoken",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.PHP","line": 49,"class": "Illuminate\\View\\Middleware\\ShareErrorsFromSession",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.PHP","line": 121,"line": 63,"function": "handleStatefulRequest","class": "Illuminate\\Session\\Middleware\\StartSession",{
"file": "/var/www/clients/client0/web13/web/vendor/stancl/tenancy/src/Middleware/IdentificationMiddleware.PHP","line": 36,{
"file": "/var/www/clients/client0/web13/web/vendor/stancl/tenancy/src/Middleware/InitializeTenancyByDomain.PHP","line": 38,"function": "initializeTenancy","class": "Stancl\\Tenancy\\Middleware\\IdentificationMiddleware","class": "Stancl\\Tenancy\\Middleware\\InitializeTenancyByDomain",{
"file": "/var/www/clients/client0/web13/web/vendor/stancl/tenancy/src/Middleware/PreventAccessFromCentralDomains.PHP","line": 29,"class": "Stancl\\Tenancy\\Middleware\\PreventAccessFromCentralDomains",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.PHP","line": 37,"class": "Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.PHP","line": 67,"class": "Illuminate\\Cookie\\Middleware\\EncryptCookies","line": 103,"line": 694,"function": "then","line": 669,"function": "runRouteWithinStack","line": 635,"function": "runRoute","line": 624,"function": "dispatchToRoute",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.PHP","line": 166,"function": "Illuminate\\Foundation\\Http\\{closure}","class": "Illuminate\\Foundation\\Http\\Kernel",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.PHP","line": 21,"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.PHP","line": 27,"class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",{
"file": "/var/www/clients/client0/web13/web/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.PHP","line": 86,"class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",{
"file": "/var/www/clients/client0/web13/web/vendor/fruitcake/laravel-cors/src/HandleCors.PHP","class": "Fruitcake\\Cors\\HandleCors",{
"file": "/var/www/clients/client0/web13/web/vendor/fideloper/proxy/src/TrustProxies.PHP","line": 57,"class": "Fideloper\\Proxy\\TrustProxies","line": 141,"line": 110,"function": "sendRequestThroughRouter",{
"file": "/var/www/clients/client0/web13/web/public/index.PHP","line": 53,"type": "->"
}
]
}
如果我通过像这样在队列中简单地分派它来启动与单个作业相同的作业
\App\Jobs\RemoveSalesrep::dispatch($salesrep['id'],$jobConfig)->onConnection('redis')->onQueue('default');
处理得非常好。
在另一个控制器文件中,我正在使用 Bus::batch 方法并且不会出现该错误。什么可能导致该跟踪中的 sql 语句损坏?我尝试了一个空的新创建的工作 - 结果相同。似乎与工作本身无关。
不得不提的是,这发生在“租户”控制器中。我将此软件包用于多租户应用。
https://tenancyforlaravel.com/docs/v3/introduction/
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)