mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Change default queue settings to be low go-routines (#15964)
This PR suggests a change to the default configuration for queues: * Use a common DATADIR for the queues * Set starting workers to 0 and make boost a single worker Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		@@ -51,7 +51,7 @@ var (
 | 
				
			|||||||
		IssueConnStr:          "",
 | 
							IssueConnStr:          "",
 | 
				
			||||||
		IssueIndexerName:      "gitea_issues",
 | 
							IssueIndexerName:      "gitea_issues",
 | 
				
			||||||
		IssueQueueType:        LevelQueueType,
 | 
							IssueQueueType:        LevelQueueType,
 | 
				
			||||||
		IssueQueueDir:         "indexers/issues.queue",
 | 
							IssueQueueDir:         "queues/common",
 | 
				
			||||||
		IssueQueueConnStr:     "",
 | 
							IssueQueueConnStr:     "",
 | 
				
			||||||
		IssueQueueBatchNumber: 20,
 | 
							IssueQueueBatchNumber: 20,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -76,7 +76,7 @@ func newIndexerService() {
 | 
				
			|||||||
	Indexer.IssueIndexerName = sec.Key("ISSUE_INDEXER_NAME").MustString(Indexer.IssueIndexerName)
 | 
						Indexer.IssueIndexerName = sec.Key("ISSUE_INDEXER_NAME").MustString(Indexer.IssueIndexerName)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Indexer.IssueQueueType = sec.Key("ISSUE_INDEXER_QUEUE_TYPE").MustString(LevelQueueType)
 | 
						Indexer.IssueQueueType = sec.Key("ISSUE_INDEXER_QUEUE_TYPE").MustString(LevelQueueType)
 | 
				
			||||||
	Indexer.IssueQueueDir = sec.Key("ISSUE_INDEXER_QUEUE_DIR").MustString(path.Join(AppDataPath, "indexers/issues.queue"))
 | 
						Indexer.IssueQueueDir = sec.Key("ISSUE_INDEXER_QUEUE_DIR").MustString(path.Join(AppDataPath, "queues/common"))
 | 
				
			||||||
	Indexer.IssueQueueConnStr = sec.Key("ISSUE_INDEXER_QUEUE_CONN_STR").MustString("")
 | 
						Indexer.IssueQueueConnStr = sec.Key("ISSUE_INDEXER_QUEUE_CONN_STR").MustString("")
 | 
				
			||||||
	Indexer.IssueQueueBatchNumber = sec.Key("ISSUE_INDEXER_QUEUE_BATCH_NUMBER").MustInt(20)
 | 
						Indexer.IssueQueueBatchNumber = sec.Key("ISSUE_INDEXER_QUEUE_BATCH_NUMBER").MustInt(20)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -48,7 +48,7 @@ func GetQueueSettings(name string) QueueSettings {
 | 
				
			|||||||
	q.Name = name
 | 
						q.Name = name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// DataDir is not directly inheritable
 | 
						// DataDir is not directly inheritable
 | 
				
			||||||
	q.DataDir = filepath.Join(Queue.DataDir, name)
 | 
						q.DataDir = filepath.Join(Queue.DataDir, "common")
 | 
				
			||||||
	// QueueName is not directly inheritable either
 | 
						// QueueName is not directly inheritable either
 | 
				
			||||||
	q.QueueName = name + Queue.QueueName
 | 
						q.QueueName = name + Queue.QueueName
 | 
				
			||||||
	for _, key := range sec.Keys() {
 | 
						for _, key := range sec.Keys() {
 | 
				
			||||||
@@ -103,11 +103,11 @@ func NewQueueService() {
 | 
				
			|||||||
	Queue.WrapIfNecessary = sec.Key("WRAP_IF_NECESSARY").MustBool(true)
 | 
						Queue.WrapIfNecessary = sec.Key("WRAP_IF_NECESSARY").MustBool(true)
 | 
				
			||||||
	Queue.MaxAttempts = sec.Key("MAX_ATTEMPTS").MustInt(10)
 | 
						Queue.MaxAttempts = sec.Key("MAX_ATTEMPTS").MustInt(10)
 | 
				
			||||||
	Queue.Timeout = sec.Key("TIMEOUT").MustDuration(GracefulHammerTime + 30*time.Second)
 | 
						Queue.Timeout = sec.Key("TIMEOUT").MustDuration(GracefulHammerTime + 30*time.Second)
 | 
				
			||||||
	Queue.Workers = sec.Key("WORKERS").MustInt(1)
 | 
						Queue.Workers = sec.Key("WORKERS").MustInt(0)
 | 
				
			||||||
	Queue.MaxWorkers = sec.Key("MAX_WORKERS").MustInt(10)
 | 
						Queue.MaxWorkers = sec.Key("MAX_WORKERS").MustInt(10)
 | 
				
			||||||
	Queue.BlockTimeout = sec.Key("BLOCK_TIMEOUT").MustDuration(1 * time.Second)
 | 
						Queue.BlockTimeout = sec.Key("BLOCK_TIMEOUT").MustDuration(1 * time.Second)
 | 
				
			||||||
	Queue.BoostTimeout = sec.Key("BOOST_TIMEOUT").MustDuration(5 * time.Minute)
 | 
						Queue.BoostTimeout = sec.Key("BOOST_TIMEOUT").MustDuration(5 * time.Minute)
 | 
				
			||||||
	Queue.BoostWorkers = sec.Key("BOOST_WORKERS").MustInt(5)
 | 
						Queue.BoostWorkers = sec.Key("BOOST_WORKERS").MustInt(1)
 | 
				
			||||||
	Queue.QueueName = sec.Key("QUEUE_NAME").MustString("_queue")
 | 
						Queue.QueueName = sec.Key("QUEUE_NAME").MustString("_queue")
 | 
				
			||||||
	Queue.SetName = sec.Key("SET_NAME").MustString("")
 | 
						Queue.SetName = sec.Key("SET_NAME").MustString("")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user