Feature: Updating Listreners, Separating Logic from listeners, Queuing Policies
This commit is contained in:
@@ -6,6 +6,19 @@ use Lunar\Facades\ModelManifest;
|
||||
use Lunar\Models\Contracts\Customer as CustomerContract;
|
||||
use Modules\Core\Auth\Events\UserCreated;
|
||||
|
||||
/**
|
||||
* Deliberately NOT queued, even though UserCreated (requesting an OTP
|
||||
* code) and the login that follows it (submitting the code) are normally
|
||||
* separate requests with a real time gap between them — that gap is not
|
||||
* a guarantee this code controls. A busy/backed-up queue (a deploy in
|
||||
* progress, a crashed worker, a traffic spike) could make this job run
|
||||
* AFTER the shopper has already logged in and something has read
|
||||
* $user->latestCustomer() (Modules\Core\Customer\Services\
|
||||
* CustomerAccountService), silently returning null for a legitimately
|
||||
* paired user with no retry anywhere to catch it. Kept synchronous so the
|
||||
* Customer always exists by the time UserCreated's dispatch call returns,
|
||||
* regardless of queue health.
|
||||
*/
|
||||
class CreateCustomerForUser
|
||||
{
|
||||
public function handle(UserCreated $event): void
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace Modules\Core\Customer\Listeners;
|
||||
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Lunar\Models\Address;
|
||||
use Modules\Core\Customer\Events\CustomerAddressCreated;
|
||||
use Modules\Core\Customer\Events\CustomerAddressDeleted;
|
||||
@@ -18,8 +19,11 @@ use Modules\Core\Logging\ActivityLogService;
|
||||
* passed through explicitly on every call, since these events are
|
||||
* `web`-guard-caused, not `staff`-guard — see ActivityLogService's own
|
||||
* docblock for why that parameter exists.
|
||||
*
|
||||
* Queued — a pure audit-log write with no same-request reader; the
|
||||
* shopper's own request doesn't need this to complete before responding.
|
||||
*/
|
||||
class LogCustomerAccountActivity
|
||||
class LogCustomerAccountActivity implements ShouldQueue
|
||||
{
|
||||
public function __construct(
|
||||
private readonly ActivityLogService $activityLog,
|
||||
|
||||
Reference in New Issue
Block a user