sql >> Database teknologi >  >> NoSQL >> Redis

Annuller job i Laravel

Der er ingen direkte eller nem måde at gøre det på. De forsinkede job opbevares i sorted sets som skal behandles som score og jobnyttelast som value .

Der er flere måder at fjerne et element fra de sorterede sæt (de fleste af dem kræver en vis indsats afhængigt af størrelsen af ​​den forsinkede kø) såsom

  • Du får den "nøjagtige" nyttelast af det afsendte job og bruger derefter ZREM til at fjerne det. Det er svært, fordi objektet (serialiseret version af jobbet med alle parametre) kan være enormt, og du kan ikke oprette det "nøjagtige" job, fordi det har en unik identifikator. Du kan få listen over det med ZRANGEBYSCORE og med WITHSCORES . Det vil give dig listen over job med deres score. Du kan bruge score til at identificere et forsinket job. Hent værdien (serialiseret nyttelast) og brug derefter ZREM .
  • Hvis der kun er ét job, der skal behandles på et bestemt tidspunkt, kan du bruge ZREMRANGEBYSCORE med at bruge den behandlede tid. Hvis der er n job, der skal behandles præcis på det tidspunkt, kan andre job også slettes, da ZREMRANGEBYSCORE tager tidsinterval.
  • Du kan prøve at bruge ZSCAN til at scanne hele den forsinkede liste (med paginering) og finde jobbets score og identifikator, og derefter bruge ZREMRANGEBYLEX med identifikatoren til at fjerne det.
  • En anden måde kunne være at sætte en annulleringsbetingelse i begyndelsen af ​​handle metode. Denne kræver udvikling af applikationslag. Når du skubber et job til køen, sender du en identifikator til jobbet, læg samme identifikator (som du kan forstå) i Redis også (med EXPIRE større end den forsinkede tid). Når du vil annullere det, skal du slette det fra Redis. Inde i håndteringsmetoden skal du kontrollere, om den givne identifikator findes i Redis, hvis ikke tidlig tilbagevenden fra kodeblokken.



  1. 6 bedste praksis for implementering af MongoDB på Amazon EC2

  2. Forskellen mellem dokumentbaserede og nøgle/værdibaserede databaser?

  3. Forespørger efter befolkning i Mongoose

  4. mongoexport samlet eksport til en csv-fil