perf: Tune AP job queue timings (#7635)
* perf: Tune AP job queue timings * CHANGELOG * chore: add reference Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
This commit is contained in:
		
							parent
							
								
									0e69091455
								
							
						
					
					
						commit
						bb2db1cf76
					
				
					 3 changed files with 21 additions and 7 deletions
				
			
		|  | @ -12,6 +12,7 @@ | |||
| ### Improvements | ||||
| - 依存関係の更新 | ||||
| - localStorageのaccountsはindexedDBで保持するように | ||||
| - ActivityPub: ジョブキューの試行タイミングを調整 (#7635) | ||||
| 
 | ||||
| ### Bugfixes | ||||
| - チャンネルを作成しているとアカウントを削除できないのを修正 | ||||
|  |  | |||
|  | @ -73,8 +73,7 @@ export function deliver(user: ThinUser, content: unknown, to: string | null) { | |||
| 		attempts: config.deliverJobMaxAttempts || 12, | ||||
| 		timeout: 1 * 60 * 1000,	// 1min
 | ||||
| 		backoff: { | ||||
| 			type: 'exponential', | ||||
| 			delay: 60 * 1000 | ||||
| 			type: 'apBackoff' | ||||
| 		}, | ||||
| 		removeOnComplete: true, | ||||
| 		removeOnFail: true | ||||
|  | @ -91,8 +90,7 @@ export function inbox(activity: IActivity, signature: httpSignature.IParsedSigna | |||
| 		attempts: config.inboxJobMaxAttempts || 8, | ||||
| 		timeout: 5 * 60 * 1000,	// 5min
 | ||||
| 		backoff: { | ||||
| 			type: 'exponential', | ||||
| 			delay: 60 * 1000 | ||||
| 			type: 'apBackoff' | ||||
| 		}, | ||||
| 		removeOnComplete: true, | ||||
| 		removeOnFail: true | ||||
|  |  | |||
|  | @ -11,8 +11,23 @@ export function initialize<T>(name: string, limitPerSec = -1) { | |||
| 		}, | ||||
| 		prefix: config.redis.prefix ? `${config.redis.prefix}:queue` : 'queue', | ||||
| 		limiter: limitPerSec > 0 ? { | ||||
| 			max: limitPerSec * 5, | ||||
| 			duration: 5000 | ||||
| 		} : undefined | ||||
| 			max: limitPerSec, | ||||
| 			duration: 1000 | ||||
| 		} : undefined, | ||||
| 		settings: { | ||||
| 			backoffStrategies: { | ||||
| 				apBackoff | ||||
| 			} | ||||
| 		} | ||||
| 	}); | ||||
| } | ||||
| 
 | ||||
| // ref. https://github.com/misskey-dev/misskey/pull/7635#issue-971097019
 | ||||
| function apBackoff(attemptsMade: number, err: Error) { | ||||
| 	const baseDelay = 60 * 1000;	// 1min
 | ||||
| 	const maxBackoff = 8 * 60 * 60 * 1000;	// 8hours
 | ||||
| 	let backoff = (Math.pow(2, attemptsMade) - 1) * baseDelay; | ||||
| 	backoff = Math.min(backoff, maxBackoff); | ||||
| 	backoff += Math.round(backoff * Math.random() * 0.2); | ||||
| 	return backoff; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue