Hi All,
I'm deploying my project to the server. All my listeners are queued and work fine on local. When I deployed to the server and configured Queue I'm not receiving emails. but processing successfully.
cron job command
* * * * * /usr/local/bin/php /home/username/project/artisan schedule:run >> /dev/null 2>&1
console\Kernel
protected function schedule(Schedule $schedule)
{
$schedule->command('queue:work --tries=3')
->everyMinute()
->withoutOverlapping();
}
controller
public function pay(Request $request)
{
//validating the input
$booking = Booking::whereId($request->booking_id)
->whereUserId(auth('client')->user()->id)
->first();
abort_if(!$booking, 403, 'No bookings found');
$cartAddOnsTotal = 0;
$cartTablesTotal = 0;
$cartServiceTotal = 0;
$cartFoodArrangementsTotal = 0;
$subTotal = 0;
$vat = 0;
$SubTotalWithVat = 0;
$balanceAmountToBePaid = 0;
$grandTotal = 0;
$deductAmount = 0;
//calculating the totals
if ($request->payment_mode == PaymentDetails::PAYMENT_MODE_CASH || $request->payment_mode == PaymentDetails::PAYMENT_MODE_CHEQUE) {
//creating payment details
event(new ClientAdditionalItemsBooked($booking, $cartAddOns, $cartTables, $paymentDetails, $vat, $SubTotalWithVat, $subTotal, $grandTotal));
return redirect()->route('client.dashboard');
}
}
this event has two listeners and I registered it on Event Service provider
protected $listen = [
......
ClientAdditionalItemsBooked::class => [
NotifyClientAdditionalItemsBooked::class,
NotifyAdminClientAdditionalItemsBooked::class,
],
.....
];
Event Class
class ClientAdditionalItemsBooked
{
use SerializesModels;
public $booking;
public $cartAddOns;
public $cartTables;
public $paymentDetails;
public $vat;
public $SubTotalWithVat;
public $subTotal;
public $grandTotal;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct($booking, $cartAddOns, $cartTables, $paymentDetails, $vat, $SubTotalWithVat, $subTotal, $grandTotal)
{
$this->booking = $booking;
$this->cartAddOns = $cartAddOns;
$this->cartTables = $cartTables;
$this->paymentDetails = $paymentDetails;
$this->vat = $vat;
$this->SubTotalWithVat = $SubTotalWithVat;
$this->subTotal = $subTotal;
$this->grandTotal = $grandTotal;
}
}
Listener
class NotifyAdminClientAdditionalItemsBooked implements ShouldQueue
{
/**
* Handle the event.
*
* @param object $event
* @return void
*/
public function handle($event)
{
Mail::to(env('ADMIN_EMAIL'))
->send(new MailAdminClientAdditionalItemsBooked($event->booking, $event->cartAddOns, $event->cartTables, $event->paymentDetails, $event->vat, $event->SubTotalWithVat, $event->subTotal, $event->grandTotal));
}
}
Mailable
class MailAdminClientAdditionalItemsBooked extends Mailable
{
use SerializesModels, Queueable;
public $booking;
public $cartAddOns;
public $cartTables;
public $paymentDetails;
public $vat;
public $SubTotalWithVat;
public $subTotal;
public $grandTotal;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($booking, $cartAddOns, $cartTables, $paymentDetails, $vat, $SubTotalWithVat, $subTotal, $grandTotal)
{
$this->booking = $booking;
$this->cartAddOns = $cartAddOns;
$this->cartTables = $cartTables;
$this->paymentDetails = $paymentDetails;
$this->vat = $vat;
$this->SubTotalWithVat = $SubTotalWithVat;
$this->subTotal = $subTotal;
$this->grandTotal = $grandTotal;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->markdown('client.emails.additional_booking.mail_admin_client_additional_items_booked');
}
}
Edited: