Laravel queues not saving entity to DB
please help, I might be doing or understood something wrong.
I am creating a mass upload to database, which takes a little bit of time so I decided to make async all and proccess it in background using Laravel Queues.
In controller I create an associated list, which is passed to Laravel Job.
foreach($data as $row)
{
$instantArray = array();
$orderDate = PHPExcel_Shared_Date::ExcelToPHPObject($row[3]);
$issueDate = PHPExcel_Shared_Date::ExcelToPHPObject($row[4]);
$orderRow = array(
'invoice_no' => trim($row[0]),
'agent_id' => $row[1],
'issued_at' => $orderDate->format('Y-m-d'),
'received_at' => $issueDate->format('Y-m-d'),
);
$gameArray = array();
$invoiceOrdersArray = $orderRow;
}
$job = (new Import($invoiceOrdersArray));
dispatch($job);
In Laravel Job I am trying to create an entyty and upload it to database
class Import implements ShouldQueue
{
use InteractsWithQueue, SerializesModels, Queueable, Dispatchable;
protected $importData;
public function __construct($importData)
{
$this->importData = $importData;
}
public function handle()
{
foreach($this->importData as $insert)
{
InvoicesOrder::create($insert);
}
}
However, every time I am trying I can see in my logs:
#0 appUtilitiesUpdater.php(18): IlluminateFoundationBootstrapHandleExceptions->handleError(8, 'Trying to get p...', '...', 18, Array)
#1 vendorlaravelframeworksrcIlluminateEventsDispatcher.php(348): ModulesAccountingEntitiesInvoicesOrder::AppUtilities{closure}(Object(ModulesAccountingEntitiesInvoicesOrder))
#2 vendorlaravelframeworksrcIlluminateEventsDispatcher.php(199): IlluminateEventsDispatcher->IlluminateEvents{closure}('eloquent.creati...', Array)
#3 vendorlaravelframeworksrcIlluminateEventsDispatcher.php(159): IlluminateEventsDispatcher->dispatch('eloquent.creati...', Array, true)
#4 vendorlaravelframeworksrcIlluminateDatabaseEloquentConcernsHasEvents.php(148): IlluminateEventsDispatcher->until('eloquent.creati...', Object(ModulesAccountingEntitiesInvoicesOrder))
#5 vendorlaravelframeworksrcIlluminateDatabaseEloquentModel.php(636): IlluminateDatabaseEloquentModel->fireModelEvent('creating')
#6 vendorlaravelframeworksrcIlluminateDatabaseEloquentModel.php(522): IlluminateDatabaseEloquentModel->performInsert(Object(IlluminateDatabaseEloquentBuilder))
#7 ModulesAccountingJobsImportFiles.php(39): IlluminateDatabaseEloquentModel->save()
#8 [internal function]: ModulesAccountingJobsImportFiles->handle()
#9 vendorlaravelframeworksrcIlluminateContainerBoundMethod.php(29): call_user_func_array(Array, Array)
#10 vendorlaravelframeworksrcIlluminateContainerBoundMethod.php(87): IlluminateContainerBoundMethod::IlluminateContainer{closure}()
#11 vendorlaravelframeworksrcIlluminateContainerBoundMethod.php(31): IlluminateContainerBoundMethod::callBoundMethod(Object(IlluminateFoundationApplication), Array, Object(Closure))
#12 vendorlaravelframeworksrcIlluminateContainerContainer.php(539): IlluminateContainerBoundMethod::call(Object(IlluminateFoundationApplication), Array, Array, NULL)
#13 vendorlaravelframeworksrcIlluminateBusDispatcher.php(94): IlluminateContainerContainer->call(Array)
#14 vendorlaravelframeworksrcIlluminatePipelinePipeline.php(114): IlluminateBusDispatcher->IlluminateBus{closure}(Object(ModulesAccountingJobsImportFiles))
#15 vendorlaravelframeworksrcIlluminatePipelinePipeline.php(102): IlluminatePipelinePipeline->IlluminatePipeline{closure}(Object(ModulesAccountingJobsImportFiles))
#16 vendorlaravelframeworksrcIlluminateBusDispatcher.php(98): IlluminatePipelinePipeline->then(Object(Closure))
#17 vendorlaravelframeworksrcIlluminateQueueCallQueuedHandler.php(42): IlluminateBusDispatcher->dispatchNow(Object(ModulesAccountingJobsImportFiles), false)
#18 vendorlaravelframeworksrcIlluminateQueueJobsJob.php(69): IlluminateQueueCallQueuedHandler->call(Object(IlluminateQueueJobsRedisJob), Array)
#19 vendorlaravelframeworksrcIlluminateQueueWorker.php(317): IlluminateQueueJobsJob->fire()
Whenever I do it in controller it works fine, it just loads very long.
Maybe it is not possible to save entities in Job using queues?
Thank you.
php asynchronous laravel-5 eloquent
add a comment |
please help, I might be doing or understood something wrong.
I am creating a mass upload to database, which takes a little bit of time so I decided to make async all and proccess it in background using Laravel Queues.
In controller I create an associated list, which is passed to Laravel Job.
foreach($data as $row)
{
$instantArray = array();
$orderDate = PHPExcel_Shared_Date::ExcelToPHPObject($row[3]);
$issueDate = PHPExcel_Shared_Date::ExcelToPHPObject($row[4]);
$orderRow = array(
'invoice_no' => trim($row[0]),
'agent_id' => $row[1],
'issued_at' => $orderDate->format('Y-m-d'),
'received_at' => $issueDate->format('Y-m-d'),
);
$gameArray = array();
$invoiceOrdersArray = $orderRow;
}
$job = (new Import($invoiceOrdersArray));
dispatch($job);
In Laravel Job I am trying to create an entyty and upload it to database
class Import implements ShouldQueue
{
use InteractsWithQueue, SerializesModels, Queueable, Dispatchable;
protected $importData;
public function __construct($importData)
{
$this->importData = $importData;
}
public function handle()
{
foreach($this->importData as $insert)
{
InvoicesOrder::create($insert);
}
}
However, every time I am trying I can see in my logs:
#0 appUtilitiesUpdater.php(18): IlluminateFoundationBootstrapHandleExceptions->handleError(8, 'Trying to get p...', '...', 18, Array)
#1 vendorlaravelframeworksrcIlluminateEventsDispatcher.php(348): ModulesAccountingEntitiesInvoicesOrder::AppUtilities{closure}(Object(ModulesAccountingEntitiesInvoicesOrder))
#2 vendorlaravelframeworksrcIlluminateEventsDispatcher.php(199): IlluminateEventsDispatcher->IlluminateEvents{closure}('eloquent.creati...', Array)
#3 vendorlaravelframeworksrcIlluminateEventsDispatcher.php(159): IlluminateEventsDispatcher->dispatch('eloquent.creati...', Array, true)
#4 vendorlaravelframeworksrcIlluminateDatabaseEloquentConcernsHasEvents.php(148): IlluminateEventsDispatcher->until('eloquent.creati...', Object(ModulesAccountingEntitiesInvoicesOrder))
#5 vendorlaravelframeworksrcIlluminateDatabaseEloquentModel.php(636): IlluminateDatabaseEloquentModel->fireModelEvent('creating')
#6 vendorlaravelframeworksrcIlluminateDatabaseEloquentModel.php(522): IlluminateDatabaseEloquentModel->performInsert(Object(IlluminateDatabaseEloquentBuilder))
#7 ModulesAccountingJobsImportFiles.php(39): IlluminateDatabaseEloquentModel->save()
#8 [internal function]: ModulesAccountingJobsImportFiles->handle()
#9 vendorlaravelframeworksrcIlluminateContainerBoundMethod.php(29): call_user_func_array(Array, Array)
#10 vendorlaravelframeworksrcIlluminateContainerBoundMethod.php(87): IlluminateContainerBoundMethod::IlluminateContainer{closure}()
#11 vendorlaravelframeworksrcIlluminateContainerBoundMethod.php(31): IlluminateContainerBoundMethod::callBoundMethod(Object(IlluminateFoundationApplication), Array, Object(Closure))
#12 vendorlaravelframeworksrcIlluminateContainerContainer.php(539): IlluminateContainerBoundMethod::call(Object(IlluminateFoundationApplication), Array, Array, NULL)
#13 vendorlaravelframeworksrcIlluminateBusDispatcher.php(94): IlluminateContainerContainer->call(Array)
#14 vendorlaravelframeworksrcIlluminatePipelinePipeline.php(114): IlluminateBusDispatcher->IlluminateBus{closure}(Object(ModulesAccountingJobsImportFiles))
#15 vendorlaravelframeworksrcIlluminatePipelinePipeline.php(102): IlluminatePipelinePipeline->IlluminatePipeline{closure}(Object(ModulesAccountingJobsImportFiles))
#16 vendorlaravelframeworksrcIlluminateBusDispatcher.php(98): IlluminatePipelinePipeline->then(Object(Closure))
#17 vendorlaravelframeworksrcIlluminateQueueCallQueuedHandler.php(42): IlluminateBusDispatcher->dispatchNow(Object(ModulesAccountingJobsImportFiles), false)
#18 vendorlaravelframeworksrcIlluminateQueueJobsJob.php(69): IlluminateQueueCallQueuedHandler->call(Object(IlluminateQueueJobsRedisJob), Array)
#19 vendorlaravelframeworksrcIlluminateQueueWorker.php(317): IlluminateQueueJobsJob->fire()
Whenever I do it in controller it works fine, it just loads very long.
Maybe it is not possible to save entities in Job using queues?
Thank you.
php asynchronous laravel-5 eloquent
add a comment |
please help, I might be doing or understood something wrong.
I am creating a mass upload to database, which takes a little bit of time so I decided to make async all and proccess it in background using Laravel Queues.
In controller I create an associated list, which is passed to Laravel Job.
foreach($data as $row)
{
$instantArray = array();
$orderDate = PHPExcel_Shared_Date::ExcelToPHPObject($row[3]);
$issueDate = PHPExcel_Shared_Date::ExcelToPHPObject($row[4]);
$orderRow = array(
'invoice_no' => trim($row[0]),
'agent_id' => $row[1],
'issued_at' => $orderDate->format('Y-m-d'),
'received_at' => $issueDate->format('Y-m-d'),
);
$gameArray = array();
$invoiceOrdersArray = $orderRow;
}
$job = (new Import($invoiceOrdersArray));
dispatch($job);
In Laravel Job I am trying to create an entyty and upload it to database
class Import implements ShouldQueue
{
use InteractsWithQueue, SerializesModels, Queueable, Dispatchable;
protected $importData;
public function __construct($importData)
{
$this->importData = $importData;
}
public function handle()
{
foreach($this->importData as $insert)
{
InvoicesOrder::create($insert);
}
}
However, every time I am trying I can see in my logs:
#0 appUtilitiesUpdater.php(18): IlluminateFoundationBootstrapHandleExceptions->handleError(8, 'Trying to get p...', '...', 18, Array)
#1 vendorlaravelframeworksrcIlluminateEventsDispatcher.php(348): ModulesAccountingEntitiesInvoicesOrder::AppUtilities{closure}(Object(ModulesAccountingEntitiesInvoicesOrder))
#2 vendorlaravelframeworksrcIlluminateEventsDispatcher.php(199): IlluminateEventsDispatcher->IlluminateEvents{closure}('eloquent.creati...', Array)
#3 vendorlaravelframeworksrcIlluminateEventsDispatcher.php(159): IlluminateEventsDispatcher->dispatch('eloquent.creati...', Array, true)
#4 vendorlaravelframeworksrcIlluminateDatabaseEloquentConcernsHasEvents.php(148): IlluminateEventsDispatcher->until('eloquent.creati...', Object(ModulesAccountingEntitiesInvoicesOrder))
#5 vendorlaravelframeworksrcIlluminateDatabaseEloquentModel.php(636): IlluminateDatabaseEloquentModel->fireModelEvent('creating')
#6 vendorlaravelframeworksrcIlluminateDatabaseEloquentModel.php(522): IlluminateDatabaseEloquentModel->performInsert(Object(IlluminateDatabaseEloquentBuilder))
#7 ModulesAccountingJobsImportFiles.php(39): IlluminateDatabaseEloquentModel->save()
#8 [internal function]: ModulesAccountingJobsImportFiles->handle()
#9 vendorlaravelframeworksrcIlluminateContainerBoundMethod.php(29): call_user_func_array(Array, Array)
#10 vendorlaravelframeworksrcIlluminateContainerBoundMethod.php(87): IlluminateContainerBoundMethod::IlluminateContainer{closure}()
#11 vendorlaravelframeworksrcIlluminateContainerBoundMethod.php(31): IlluminateContainerBoundMethod::callBoundMethod(Object(IlluminateFoundationApplication), Array, Object(Closure))
#12 vendorlaravelframeworksrcIlluminateContainerContainer.php(539): IlluminateContainerBoundMethod::call(Object(IlluminateFoundationApplication), Array, Array, NULL)
#13 vendorlaravelframeworksrcIlluminateBusDispatcher.php(94): IlluminateContainerContainer->call(Array)
#14 vendorlaravelframeworksrcIlluminatePipelinePipeline.php(114): IlluminateBusDispatcher->IlluminateBus{closure}(Object(ModulesAccountingJobsImportFiles))
#15 vendorlaravelframeworksrcIlluminatePipelinePipeline.php(102): IlluminatePipelinePipeline->IlluminatePipeline{closure}(Object(ModulesAccountingJobsImportFiles))
#16 vendorlaravelframeworksrcIlluminateBusDispatcher.php(98): IlluminatePipelinePipeline->then(Object(Closure))
#17 vendorlaravelframeworksrcIlluminateQueueCallQueuedHandler.php(42): IlluminateBusDispatcher->dispatchNow(Object(ModulesAccountingJobsImportFiles), false)
#18 vendorlaravelframeworksrcIlluminateQueueJobsJob.php(69): IlluminateQueueCallQueuedHandler->call(Object(IlluminateQueueJobsRedisJob), Array)
#19 vendorlaravelframeworksrcIlluminateQueueWorker.php(317): IlluminateQueueJobsJob->fire()
Whenever I do it in controller it works fine, it just loads very long.
Maybe it is not possible to save entities in Job using queues?
Thank you.
php asynchronous laravel-5 eloquent
please help, I might be doing or understood something wrong.
I am creating a mass upload to database, which takes a little bit of time so I decided to make async all and proccess it in background using Laravel Queues.
In controller I create an associated list, which is passed to Laravel Job.
foreach($data as $row)
{
$instantArray = array();
$orderDate = PHPExcel_Shared_Date::ExcelToPHPObject($row[3]);
$issueDate = PHPExcel_Shared_Date::ExcelToPHPObject($row[4]);
$orderRow = array(
'invoice_no' => trim($row[0]),
'agent_id' => $row[1],
'issued_at' => $orderDate->format('Y-m-d'),
'received_at' => $issueDate->format('Y-m-d'),
);
$gameArray = array();
$invoiceOrdersArray = $orderRow;
}
$job = (new Import($invoiceOrdersArray));
dispatch($job);
In Laravel Job I am trying to create an entyty and upload it to database
class Import implements ShouldQueue
{
use InteractsWithQueue, SerializesModels, Queueable, Dispatchable;
protected $importData;
public function __construct($importData)
{
$this->importData = $importData;
}
public function handle()
{
foreach($this->importData as $insert)
{
InvoicesOrder::create($insert);
}
}
However, every time I am trying I can see in my logs:
#0 appUtilitiesUpdater.php(18): IlluminateFoundationBootstrapHandleExceptions->handleError(8, 'Trying to get p...', '...', 18, Array)
#1 vendorlaravelframeworksrcIlluminateEventsDispatcher.php(348): ModulesAccountingEntitiesInvoicesOrder::AppUtilities{closure}(Object(ModulesAccountingEntitiesInvoicesOrder))
#2 vendorlaravelframeworksrcIlluminateEventsDispatcher.php(199): IlluminateEventsDispatcher->IlluminateEvents{closure}('eloquent.creati...', Array)
#3 vendorlaravelframeworksrcIlluminateEventsDispatcher.php(159): IlluminateEventsDispatcher->dispatch('eloquent.creati...', Array, true)
#4 vendorlaravelframeworksrcIlluminateDatabaseEloquentConcernsHasEvents.php(148): IlluminateEventsDispatcher->until('eloquent.creati...', Object(ModulesAccountingEntitiesInvoicesOrder))
#5 vendorlaravelframeworksrcIlluminateDatabaseEloquentModel.php(636): IlluminateDatabaseEloquentModel->fireModelEvent('creating')
#6 vendorlaravelframeworksrcIlluminateDatabaseEloquentModel.php(522): IlluminateDatabaseEloquentModel->performInsert(Object(IlluminateDatabaseEloquentBuilder))
#7 ModulesAccountingJobsImportFiles.php(39): IlluminateDatabaseEloquentModel->save()
#8 [internal function]: ModulesAccountingJobsImportFiles->handle()
#9 vendorlaravelframeworksrcIlluminateContainerBoundMethod.php(29): call_user_func_array(Array, Array)
#10 vendorlaravelframeworksrcIlluminateContainerBoundMethod.php(87): IlluminateContainerBoundMethod::IlluminateContainer{closure}()
#11 vendorlaravelframeworksrcIlluminateContainerBoundMethod.php(31): IlluminateContainerBoundMethod::callBoundMethod(Object(IlluminateFoundationApplication), Array, Object(Closure))
#12 vendorlaravelframeworksrcIlluminateContainerContainer.php(539): IlluminateContainerBoundMethod::call(Object(IlluminateFoundationApplication), Array, Array, NULL)
#13 vendorlaravelframeworksrcIlluminateBusDispatcher.php(94): IlluminateContainerContainer->call(Array)
#14 vendorlaravelframeworksrcIlluminatePipelinePipeline.php(114): IlluminateBusDispatcher->IlluminateBus{closure}(Object(ModulesAccountingJobsImportFiles))
#15 vendorlaravelframeworksrcIlluminatePipelinePipeline.php(102): IlluminatePipelinePipeline->IlluminatePipeline{closure}(Object(ModulesAccountingJobsImportFiles))
#16 vendorlaravelframeworksrcIlluminateBusDispatcher.php(98): IlluminatePipelinePipeline->then(Object(Closure))
#17 vendorlaravelframeworksrcIlluminateQueueCallQueuedHandler.php(42): IlluminateBusDispatcher->dispatchNow(Object(ModulesAccountingJobsImportFiles), false)
#18 vendorlaravelframeworksrcIlluminateQueueJobsJob.php(69): IlluminateQueueCallQueuedHandler->call(Object(IlluminateQueueJobsRedisJob), Array)
#19 vendorlaravelframeworksrcIlluminateQueueWorker.php(317): IlluminateQueueJobsJob->fire()
Whenever I do it in controller it works fine, it just loads very long.
Maybe it is not possible to save entities in Job using queues?
Thank you.
php asynchronous laravel-5 eloquent
php asynchronous laravel-5 eloquent
edited Nov 15 '18 at 13:52
Arūnas Kiršis
asked Nov 15 '18 at 13:13
Arūnas KiršisArūnas Kiršis
488
488
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
In your job you insert the data in the $this->importData
property.
but in the handle method, you're looping over $invoiceOrdersArray
, where does that come from?
Should your loop, not look like this?
foreach($this->importData as $insert)
{
InvoicesOrder::create($insert);
}
You don't even need the unused $order
variable in the handle method.
Also, I think you need to use
the InvoicesOrder
class in the job. So the whole thing might look like this.
use namespace/to/InvoicesOrder;
class Import implements ShouldQueue
{
use InteractsWithQueue, SerializesModels, Queueable, Dispatchable;
protected $importData;
public function __construct($importData)
{
$this->importData = $importData;
}
public function handle()
{
foreach($$this->importData as $insert)
{
InvoicesOrder::create($insert);
}
}
}
Yes, corrected my question, there is a little bit more going on in the Job, but I just deleted everything what is not necessary for the question.
– Arūnas Kiršis
Nov 15 '18 at 13:53
The stack trace says it is trying to locate yourInvoiceOrder
in theModulesAccountingEntitiesInvoicesOrder
namespace, which is the same as the job. Is that definitely correct?
– John Halsey
Nov 15 '18 at 15:34
add a comment |
If anyone bumps into the similar problem, check in your entity if you are using any kind of presenters (I was using presentable trait), which adds fields like created/updated by. And what do we get from Auth::user()->id... Trying to get a property of non object, as queue is not an user.
add a comment |
Since queue workers are long-lived processes, they will not pick up changes to your code without being restarted. So, the simplest way to deploy an application using queue workers is to restart the workers during your deployment process. You may gracefully restart all of the workers by issuing the queue:restart command:
php artisan queue:restart
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53320316%2flaravel-queues-not-saving-entity-to-db%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
In your job you insert the data in the $this->importData
property.
but in the handle method, you're looping over $invoiceOrdersArray
, where does that come from?
Should your loop, not look like this?
foreach($this->importData as $insert)
{
InvoicesOrder::create($insert);
}
You don't even need the unused $order
variable in the handle method.
Also, I think you need to use
the InvoicesOrder
class in the job. So the whole thing might look like this.
use namespace/to/InvoicesOrder;
class Import implements ShouldQueue
{
use InteractsWithQueue, SerializesModels, Queueable, Dispatchable;
protected $importData;
public function __construct($importData)
{
$this->importData = $importData;
}
public function handle()
{
foreach($$this->importData as $insert)
{
InvoicesOrder::create($insert);
}
}
}
Yes, corrected my question, there is a little bit more going on in the Job, but I just deleted everything what is not necessary for the question.
– Arūnas Kiršis
Nov 15 '18 at 13:53
The stack trace says it is trying to locate yourInvoiceOrder
in theModulesAccountingEntitiesInvoicesOrder
namespace, which is the same as the job. Is that definitely correct?
– John Halsey
Nov 15 '18 at 15:34
add a comment |
In your job you insert the data in the $this->importData
property.
but in the handle method, you're looping over $invoiceOrdersArray
, where does that come from?
Should your loop, not look like this?
foreach($this->importData as $insert)
{
InvoicesOrder::create($insert);
}
You don't even need the unused $order
variable in the handle method.
Also, I think you need to use
the InvoicesOrder
class in the job. So the whole thing might look like this.
use namespace/to/InvoicesOrder;
class Import implements ShouldQueue
{
use InteractsWithQueue, SerializesModels, Queueable, Dispatchable;
protected $importData;
public function __construct($importData)
{
$this->importData = $importData;
}
public function handle()
{
foreach($$this->importData as $insert)
{
InvoicesOrder::create($insert);
}
}
}
Yes, corrected my question, there is a little bit more going on in the Job, but I just deleted everything what is not necessary for the question.
– Arūnas Kiršis
Nov 15 '18 at 13:53
The stack trace says it is trying to locate yourInvoiceOrder
in theModulesAccountingEntitiesInvoicesOrder
namespace, which is the same as the job. Is that definitely correct?
– John Halsey
Nov 15 '18 at 15:34
add a comment |
In your job you insert the data in the $this->importData
property.
but in the handle method, you're looping over $invoiceOrdersArray
, where does that come from?
Should your loop, not look like this?
foreach($this->importData as $insert)
{
InvoicesOrder::create($insert);
}
You don't even need the unused $order
variable in the handle method.
Also, I think you need to use
the InvoicesOrder
class in the job. So the whole thing might look like this.
use namespace/to/InvoicesOrder;
class Import implements ShouldQueue
{
use InteractsWithQueue, SerializesModels, Queueable, Dispatchable;
protected $importData;
public function __construct($importData)
{
$this->importData = $importData;
}
public function handle()
{
foreach($$this->importData as $insert)
{
InvoicesOrder::create($insert);
}
}
}
In your job you insert the data in the $this->importData
property.
but in the handle method, you're looping over $invoiceOrdersArray
, where does that come from?
Should your loop, not look like this?
foreach($this->importData as $insert)
{
InvoicesOrder::create($insert);
}
You don't even need the unused $order
variable in the handle method.
Also, I think you need to use
the InvoicesOrder
class in the job. So the whole thing might look like this.
use namespace/to/InvoicesOrder;
class Import implements ShouldQueue
{
use InteractsWithQueue, SerializesModels, Queueable, Dispatchable;
protected $importData;
public function __construct($importData)
{
$this->importData = $importData;
}
public function handle()
{
foreach($$this->importData as $insert)
{
InvoicesOrder::create($insert);
}
}
}
edited Nov 15 '18 at 13:32
answered Nov 15 '18 at 13:25
John HalseyJohn Halsey
898825
898825
Yes, corrected my question, there is a little bit more going on in the Job, but I just deleted everything what is not necessary for the question.
– Arūnas Kiršis
Nov 15 '18 at 13:53
The stack trace says it is trying to locate yourInvoiceOrder
in theModulesAccountingEntitiesInvoicesOrder
namespace, which is the same as the job. Is that definitely correct?
– John Halsey
Nov 15 '18 at 15:34
add a comment |
Yes, corrected my question, there is a little bit more going on in the Job, but I just deleted everything what is not necessary for the question.
– Arūnas Kiršis
Nov 15 '18 at 13:53
The stack trace says it is trying to locate yourInvoiceOrder
in theModulesAccountingEntitiesInvoicesOrder
namespace, which is the same as the job. Is that definitely correct?
– John Halsey
Nov 15 '18 at 15:34
Yes, corrected my question, there is a little bit more going on in the Job, but I just deleted everything what is not necessary for the question.
– Arūnas Kiršis
Nov 15 '18 at 13:53
Yes, corrected my question, there is a little bit more going on in the Job, but I just deleted everything what is not necessary for the question.
– Arūnas Kiršis
Nov 15 '18 at 13:53
The stack trace says it is trying to locate your
InvoiceOrder
in the ModulesAccountingEntitiesInvoicesOrder
namespace, which is the same as the job. Is that definitely correct?– John Halsey
Nov 15 '18 at 15:34
The stack trace says it is trying to locate your
InvoiceOrder
in the ModulesAccountingEntitiesInvoicesOrder
namespace, which is the same as the job. Is that definitely correct?– John Halsey
Nov 15 '18 at 15:34
add a comment |
If anyone bumps into the similar problem, check in your entity if you are using any kind of presenters (I was using presentable trait), which adds fields like created/updated by. And what do we get from Auth::user()->id... Trying to get a property of non object, as queue is not an user.
add a comment |
If anyone bumps into the similar problem, check in your entity if you are using any kind of presenters (I was using presentable trait), which adds fields like created/updated by. And what do we get from Auth::user()->id... Trying to get a property of non object, as queue is not an user.
add a comment |
If anyone bumps into the similar problem, check in your entity if you are using any kind of presenters (I was using presentable trait), which adds fields like created/updated by. And what do we get from Auth::user()->id... Trying to get a property of non object, as queue is not an user.
If anyone bumps into the similar problem, check in your entity if you are using any kind of presenters (I was using presentable trait), which adds fields like created/updated by. And what do we get from Auth::user()->id... Trying to get a property of non object, as queue is not an user.
answered Nov 16 '18 at 6:41
Arūnas KiršisArūnas Kiršis
488
488
add a comment |
add a comment |
Since queue workers are long-lived processes, they will not pick up changes to your code without being restarted. So, the simplest way to deploy an application using queue workers is to restart the workers during your deployment process. You may gracefully restart all of the workers by issuing the queue:restart command:
php artisan queue:restart
add a comment |
Since queue workers are long-lived processes, they will not pick up changes to your code without being restarted. So, the simplest way to deploy an application using queue workers is to restart the workers during your deployment process. You may gracefully restart all of the workers by issuing the queue:restart command:
php artisan queue:restart
add a comment |
Since queue workers are long-lived processes, they will not pick up changes to your code without being restarted. So, the simplest way to deploy an application using queue workers is to restart the workers during your deployment process. You may gracefully restart all of the workers by issuing the queue:restart command:
php artisan queue:restart
Since queue workers are long-lived processes, they will not pick up changes to your code without being restarted. So, the simplest way to deploy an application using queue workers is to restart the workers during your deployment process. You may gracefully restart all of the workers by issuing the queue:restart command:
php artisan queue:restart
answered Nov 16 '18 at 6:55
Gajanan TagadpalleGajanan Tagadpalle
613
613
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53320316%2flaravel-queues-not-saving-entity-to-db%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown