Hangfire: μž‘μ—…μ— μ‹€νŒ¨ν•˜μ§€ μ•Šκ³  λ™μ‹œ 싀행을 κ±΄λ„ˆλ›°λŠ” 방법

에 λ§Œλ“  2017λ…„ 07μ›” 11일  Β·  4μ½”λ©˜νŠΈ  Β·  좜처: HangfireIO/Hangfire

DisableConcurrentExecution(timeout:0) (0 μž¬μ‹œλ„)λ₯Ό μ‚¬μš©ν•˜λŠ”

"κ±΄λ„ˆλ›΄" μž‘μ—…μ΄ λŒ€μ‹œλ³΄λ“œμ—μ„œ failed ν”Œλž˜κ·Έκ°€ μ§€μ •λ˜λŠ” 것을 μ›ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ DisableConcurrentExecutionAttribute 와 거의 λ™μΌν•œ SkipConcurrentExecutionAttribute λ₯Ό μΆ”κ°€ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. 잠금 νšλ“μ„ μ‹œλ„/μΊμΉ˜ν•˜κ³  DistributedLockTimeoutException μ‚Όν‚€κ³  κ·Έ μ΄μœ μ™€ ν•¨κ»˜ μž‘μ—…μ„ DeletedState 둜 μ„€μ •ν•©λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ GetResource() κ°€ λΉ„κ³΅κ°œμ΄κ³  ν•΄λ‹Ή κ΅¬ν˜„μ΄ 라이브러리 내뢀에 μžˆλŠ” λ‹€λ₯Έ λ©”μ„œλ“œλ₯Ό μ°Έμ‘°ν•˜κΈ° λ•Œλ¬Έμ— 이 μž‘μ—…μ„ μ œλŒ€λ‘œ μˆ˜ν–‰ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
$"{job.Type.ToGenericTypeString()}.{job.Method.Name}" μΆ©λŒν•˜μ§€ μ•ŠλŠ” λΆ„μ‚° 잠금 이름을 μƒμ„±ν•˜λŠ” μ•ˆμ „ν•œ 방법인 것 κ°™μ§€λ§Œ μ°Έμ‘°ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
μž‘μ—…μ˜ λΆ„μ‚° 잠금 이름을 μƒμ„±ν•˜λŠ” 곡개 λ©”μ„œλ“œλ₯Ό lib에 포함할 수 μžˆμŠ΅λ‹ˆκΉŒ?

μ°Έμ‘°, https://discuss.hangfire.io/t/disableconcurentexecution-for-job-groups/1389/4

question

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@dgaspar , 반볡 μž‘μ—… μŠ€μΌ€μ€„λŸ¬μ—κ²Œ λ‹€μŒ 반볡 μž‘μ—… 생성을 κ±΄λ„ˆλ›°λ„λ‘ https://gist.github.com/odinserj/a6ad7ba6686076c9b9b2e03fcf6bf74e.

λͺ¨λ“  4 λŒ“κΈ€

방금 filterContext.BackgroundJob.Job.ToString() κ°€ λ‚΄λΆ€ TypeExtensions.cs 및 DisableConcurrentExecutionAttribute.cs (재)κ΅¬ν˜„μ΄... λ¬Έμ œκ°€ ν•΄κ²°λœ 것과 λ™μΌν•œ λ¬Έμžμ—΄μ„ μ œκ³΅ν•œλ‹€λŠ” 것을 μ•Œμ•˜μŠ΅λ‹ˆλ‹€.

@dgaspar , 반볡 μž‘μ—… μŠ€μΌ€μ€„λŸ¬μ—κ²Œ λ‹€μŒ 반볡 μž‘μ—… 생성을 κ±΄λ„ˆλ›°λ„λ‘ https://gist.github.com/odinserj/a6ad7ba6686076c9b9b2e03fcf6bf74e.

@odinserj μ œμ•ˆ κ°μ‚¬ν•©λ‹ˆλ‹€. μž‘μ—…μžκ°€ μ‹€ν–‰ 쀑에 μΆ©λŒν•˜λŠ” 경우 ν•΄λ‹Ή "μ‹€ν–‰ 쀑" 행이 ν•΄μ‹œ ν…Œμ΄λΈ”μ— 남아 μžˆμŒμ„ μ•Œμ•˜μŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή 행을 μˆ˜λ™μœΌλ‘œ μ‚­μ œν•  λ•ŒκΉŒμ§€ μž‘μ—…μ΄ λ‹€μ‹œ μ˜ˆμ•½λ˜λŠ” 것을 λ°©μ§€ν•©λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ λˆ„λ½λœ 만료/정리 ν•­λͺ©μ΄ μžˆμŠ΅λ‹ˆκΉŒ? (btw, μ€‘μš”ν•œ 경우 new SqlServerStorageOptions { SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5) } λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.)

μž‘μ—…μžκ°€ λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…μ„ μ‹€ν–‰ν•˜λŠ” λ™μ•ˆ μ’…λ£Œλ˜λ©΄ λͺ¨λ“  λ©”μ‹œμ§€ λŒ€κΈ°μ—΄μ΄ νŠΈλžœμž­μ…˜μ΄κΈ° λ•Œλ¬Έμ— λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…μ΄ μžλ™μœΌλ‘œ λ‹€μ‹œ μ˜ˆμ•½λ©λ‹ˆλ‹€(적어도 곡식 λŒ€κΈ°μ—΄, λ‹€λ₯Έ μŠ€ν† λ¦¬μ§€ κ΅¬ν˜„μ€ λ™μΌν•œ λ°©μ‹μœΌλ‘œ μž‘λ™ν•΄μ•Ό 함).

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰