laravel-cached-database-stickiness

Guarantee database stickiness over the same user's consecutive requests

MIT License

Downloads
210K
Stars
81
Committers
2
laravel-cached-database-stickiness - v2.1.0 Latest Release

Published by mpyw over 1 year ago

laravel-cached-database-stickiness -

Published by mpyw over 2 years ago

laravel-cached-database-stickiness - v2.0.0

Published by mpyw almost 4 years ago

Drop support for stale versions (#20)

laravel-cached-database-stickiness - v1.0.3

Published by mpyw about 4 years ago

laravel-cached-database-stickiness - v0.3.1

Published by mpyw almost 5 years ago

laravel-cached-database-stickiness - v0.3.0

Published by mpyw almost 5 years ago

Fix: Restore $recordsModified state if its value has not been changed

  • Initialization effects are automatically revoked only if the Job does not change the stickiness state.
laravel-cached-database-stickiness - v0.2.0

Published by mpyw almost 5 years ago

[BC] Add ability to detect interfaces on listeners, nofications and mailables #2

  • ShouldAssumeFresh ShouldAssumeModified are moved from Jobs namespace to root.
  • ShouldAssumeFresh ShouldAssumeModified now works not only for jobs but also for listeners, notifications and mailables.

Add ability to retrieving $recordsModified and optimize calls for resolver #5

  • For performance optimization, isRecentlyModified() is not called when $recordsModified is already set to true.

[BC] Fix workers problem #6

  • JobInitializer interface signature and its implementation have been changed.
  • Stickiness on Connection resolved during Job execution is now correctly reset.
diff --git a/src/JobInitializers/JobInitializerInterface.php b/src/JobInitializers/JobInitializerInterface.php
index a2f6a97..d39a02c 100644
--- a/src/JobInitializers/JobInitializerInterface.php
+++ b/src/JobInitializers/JobInitializerInterface.php
@@ -3,6 +3,7 @@
 namespace Mpyw\LaravelCachedDatabaseStickiness\JobInitializers;
 
 use Illuminate\Queue\Events\JobProcessing;
+use Mpyw\LaravelCachedDatabaseStickiness\Events\ConnectionCreated;
 
 /**
  * Interface JobInitializerInterface
@@ -10,9 +11,17 @@
 interface JobInitializerInterface
 {
     /**
-     * Initialize database stickiness state before processing each job.
+     * Initialize database stickiness state on already resolved connections before processing each job.
      *
      * @param \Illuminate\Queue\Events\JobProcessing $event
      */
-    public function initializeStickinessState(JobProcessing $event): void;
+    public function initializeOnResolvedConnections(JobProcessing $event): void;
+
+    /**
+     * Initialize database stickiness state on newly created connection before processing each job.
+     *
+     * @param \Illuminate\Queue\Events\JobProcessing                         $jobProcessingEvent
+     * @param \Mpyw\LaravelCachedDatabaseStickiness\Events\ConnectionCreated $connectionCreatedEvent
+     */
+    public function initializeOnNewConnection(JobProcessing $jobProcessingEvent, ConnectionCreated $connectionCreatedEvent): void;
 }

Add Stickiness Resolver Middleware #7

  • AuthBasedResolver now correctly works around with ResolveStickinessOnResolvedConnections middleware.