I'm running into a problem where jobs in my beanstalkd queue seem to be disappearing.
public function syncProsperWorksCompanyRelationships() {
$partners = Partner::all();
$count = 0;
foreach ($partners as $partner) {
SyncProsperWorksCompanyRelationship::dispatch($partner);
$count++;
}
dd($count);
}
The count is returning the expected number of 168 for my test data, but when I listen to the queue (via php artisan queue:listen), I only see around ~35 jobs fire.
Here's the job:
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use App\ProsperWorks;
use App\Partner;
class SyncProsperWorksCompanyRelationship implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $partner;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct(Partner $partner)
{
//
$this->partner = $partner;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
//
$prosperWorks = \App::make('App\ProsperWorks');
$prosperWorks->syncProsperWorksCompanyRelationship($this->partner);
}
}
And here's the method it references: (note that the usleep is to avoid the API rate limit)
public function syncProsperWorksCompanyRelationship($partner) {
usleep(1100000);
$relatedProsperWorksContactIDs = $this->getRelatedPersonIDsViaPartner($partner);
$relatedEnrollexContacts = $partner->contacts;
if (!empty($relatedProsperWorksContactIDs)) {
foreach($relatedProsperWorksContactIDs as $relatedProsperWorksContactID) {
$this->relateContactToPartner($relatedProsperWorksContactID, $partner);
}
}
if (!empty($relatedEnrollexContacts)) {
foreach($relatedEnrollexContacts as $relatedEnrollexContact) {
usleep(1100000);
$this->relatePersonToCompany($partner, $relatedEnrollexContact['pw_id'], $relatedProsperWorksContactIDs);
}
}
}
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire