mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Pause queues (#15928)
* Start adding mechanism to return unhandled data Signed-off-by: Andrew Thornton <art27@cantab.net> * Create pushback interface Signed-off-by: Andrew Thornton <art27@cantab.net> * Add Pausable interface to WorkerPool and Manager Signed-off-by: Andrew Thornton <art27@cantab.net> * Implement Pausable and PushBack for the bytefifos Signed-off-by: Andrew Thornton <art27@cantab.net> * Implement Pausable and Pushback for ChannelQueues and ChannelUniqueQueues Signed-off-by: Andrew Thornton <art27@cantab.net> * Wire in UI for pausing Signed-off-by: Andrew Thornton <art27@cantab.net> * add testcases and fix a few issues Signed-off-by: Andrew Thornton <art27@cantab.net> * fix build Signed-off-by: Andrew Thornton <art27@cantab.net> * prevent "race" in the test Signed-off-by: Andrew Thornton <art27@cantab.net> * fix jsoniter mismerge Signed-off-by: Andrew Thornton <art27@cantab.net> * fix conflicts Signed-off-by: Andrew Thornton <art27@cantab.net> * fix format Signed-off-by: Andrew Thornton <art27@cantab.net> * Add warnings for no worker configurations and prevent data-loss with redis/levelqueue Signed-off-by: Andrew Thornton <art27@cantab.net> * Use StopTimer Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: techknowlogick <techknowlogick@gitea.io> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
		@@ -73,7 +73,7 @@ func NewWrappedUniqueQueue(handle HandlerFunc, cfg, exemplar interface{}) (Queue
 | 
			
		||||
 | 
			
		||||
	// wrapped.handle is passed to the delayedStarting internal queue and is run to handle
 | 
			
		||||
	// data passed to
 | 
			
		||||
	wrapped.handle = func(data ...Data) {
 | 
			
		||||
	wrapped.handle = func(data ...Data) (unhandled []Data) {
 | 
			
		||||
		for _, datum := range data {
 | 
			
		||||
			wrapped.tlock.Lock()
 | 
			
		||||
			if !wrapped.ready {
 | 
			
		||||
@@ -87,8 +87,11 @@ func NewWrappedUniqueQueue(handle HandlerFunc, cfg, exemplar interface{}) (Queue
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			wrapped.tlock.Unlock()
 | 
			
		||||
			handle(datum)
 | 
			
		||||
			if u := handle(datum); u != nil {
 | 
			
		||||
				unhandled = append(unhandled, u...)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return unhandled
 | 
			
		||||
	}
 | 
			
		||||
	_ = GetManager().Add(queue, WrappedUniqueQueueType, config, exemplar)
 | 
			
		||||
	return wrapped, nil
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user