2016-03-30 5 views

Antwort

0

Um die Statistiken in Bezug auf Suckerpunch Jobs

[14] pry(main)> SuckerPunch::Queue.stats 
{ 
    "CreateVVLinkJob" => { 
     "workers" => { 
      "total" => 1, 
      "busy" => 0, 
      "idle" => 1 
     }, 
      "jobs" => { 
      "processed" => 1, 
       "failed" => 0, 
      "enqueued" => 0 
     } 
    } 
} 

zu bekommen und die vorherigen Jobs

[24] pry(main)> SuckerPunch::Queue.clear 
[ 
    [0] #<SuckerPunch::Queue:0x0000000b150da0 @__lock__=#<Mutex:0x0000000b150d50>, @__condition__=#<Thread::ConditionVariable:0x0000000b150d28>, @running=false, @name="CreateVVLinkJob", @pool=#<Concurrent::ThreadPoolExecutor:0x0000000b146ad0 @__lock__=#<Mutex:0x0000000b1469e0>, @__condition__=#<Thread::ConditionVariable:0x0000000b1469b8>, @min_length=2, @max_length=2, @idletime=60, @max_queue=0, @fallback_policy=:abort, @auto_terminate=false, @pool=[], @ready=[], @queue=[], @scheduled_task_count=1, @completed_task_count=1, @largest_length=1, @ruby_pid=22314, @gc_interval=30, @next_gc_time=25973.834404648, @StopEvent=#<Concurrent::Event:0x0000000b1468c8 @__lock__=#<Mutex:0x0000000b146878>, @__condition__=#<Thread::ConditionVariable:0x0000000b146850>, @set=true, @iteration=0>, @StoppedEvent=#<Concurrent::Event:0x0000000b1467d8 @__lock__=#<Mutex:0x0000000b146788>, @__condition__=#<Thread::ConditionVariable:0x0000000b146760>, @set=true, @iteration=0>>> 
] 

Hoffnung dies ist nützlich, klar!

0

Es gibt keine eingebaute Methode innerhalb des SuckerPunch-Frameworks, die ich aus dem Quellcode sehen kann, um einen einzelnen in der Warteschlange stehenden Job oder einen Job, der gerade ausgeführt wird, abzubrechen. Es scheint, dass das Löschen der Jobwarteschlange eine Alles-oder-Nichts-Funktion ist.

Es sollte eine triviale Angelegenheit sein, eine Erweiterungsmethode hinzuzufügen, die das zugrundeliegende ConcurrentTask-Framework abfragt und Ihren neuen Job mit einem bereits in der Warteschlange eingereihten Job basierend auf dem Wert des Parameters @user abgleicht.