ဟေ့အဲဒီမှာ! သွန်းလောင်းထားသောသော့ခတ်ပေးသွင်းသူတစ် ဦး အနေဖြင့် Java 11 နှင့်အတူသွန်းသော့ခတ်ကိုမည်သို့အသုံးပြုရမည်ကိုသင်နှင့်အတူမျှဝေရန်လှုံ့ဆော်ခဲ့သည်။ Shed Lock သည် java application တွင်ဖြန့်ဝေထားသောသော့ခတ်များကိုကိုင်တွယ်ရန်ကူညီပေးသောကြောက်မက်ဘွယ်ကိရိယာတစ်ခုဖြစ်သည်။ သင်၏အက်ပလီကေးရှင်း၏ဖြစ်ရပ်မျိုးစုံရှိစဉ်ကသင်၌အသုံးဝင်သည်။ သင်အချို့သောအလုပ်များကိုတစ်ကြိမ်တည်းသာလုပ်ဆောင်ရန်သေချာစေရန်လိုအပ်သည်။
သွန်းသော့ခတ်ဆိုတာဘာလဲ
ကျနော်တို့ဘယ်လိုငုပ်ဒီကိုမငုပ်ခြင်းမပြုမီ, Shed Lock သည်ဖြန့်ဝေထားသောသော့များကိုအကောင်အထည်ဖော်ရန်ရိုးရှင်းသောနည်းလမ်းတစ်ခုကိုပေးသော Java စာကြည့်တိုက်တစ်ခုဖြစ်သည်။ ၎င်းသည် JDBC, Redis, MongoDB ကဲ့သို့သောသိုလှောင်မှုယန္တရားအမျိုးမျိုးကိုထောက်ပံ့သည်။ ဤပြောင်းလွယ်ပြင်လွယ်သည်အမျိုးမျိုးသောစီမံကိန်းများအတွက်အလွန်ရွေးချယ်စရာဖြစ်သည်။
စီမံကိန်းကိုတည်ဆောက်ခြင်း
ပထမ ဦး စွာပထမအချက်များ, သင်သည်သင်၏ Java 11 စီမံကိန်းကိုတည်ဆောက်ရန်လိုအပ်သည်။ အကယ်. သင်သည် MAVEN ကိုအသုံးပြုနေပါက,pom.xml။ JDBC အကောင်အထည်ဖော်မှုကိုဘယ်လိုထည့်သွင်းရမယ်ဆိုတာဥပမာတစ်ခုပါ။
<RESSANCARE> <Groupid> Net.Gavacrumbs.shedlock <artloclock> ShedLock-Provider-JDBC-template> <groupid> net art.javacrumbs.shedlock.shedlock </ groupidlock </ bromcipactid> </ artifiactid> <version> 4.42.0 </ version> </ မှီခိုခြင်း>
သင်သည် Graglle ကိုအသုံးပြုနေပါကဤလိုင်းများကိုသင်၏တံခါးများထည့်ပါbuild.gradleဖြေ -
အကောင်အထည်ဖော်မှု 'Net.javacrumbs.shedlock: ShedLock-Provider-JDBC-template: 4.42.0' implements.shedlock: SHEDLock-Spring: SHEDLock-Spring: 4.42.0 '
သော့ခတ်ပံ့ပိုးပေး configuring
မှီခိုမှုကိုသင်ထည့်ပြီးတာနဲ့သော့ခတ်ပံ့ပိုးသူကို configure လုပ်ဖို့လိုတယ်။ ငါတို့ JDBC database ကိုသုံးနေတယ်ဆိုပါစို့။ သင်တစ် ဦး ဖန်တီးရန်လိုအပ်သည်LockProviderသင့်ရဲ့နွေ ဦး ပြင်ဆင်မှုအတွက်ပဲ။
Import.javacrumbs.Shedlock.core.docore.docore.SockProvider Import.Javacrumbs.shedlock.provid.provider.jdbctider.jdbctive.jdbctplate.jdbctplate.jdbctplate.gdbctplate.gdbctplate.Jdbctplate.provathover org.springframework.context.nontext.nontext.annotation.Said; ORG.SPRINGFRAMEWRAMEWORK.Context.AnontEt.Context.Context.Context.Context.Context.Context.Context org.springframework.jdbc.core.jdore.jdebctemplate ကိုတင်သွင်းပါ။ Import Javix.SQL.DataSource ကိုတင်သွင်းပါ။ @Configuration Public Class Shedlokconfigonfig {@Bean ပြည်သူ့ Lockprovider Tockprovider (DataSource DataSource) {JDBCTESTEMPLATESOUSOROUSOROUPER ။ (JDBCTEMTEMPLATIONPEROUTION.BUIDER (JDBCTEMPLATED) ); }
ဒီကုဒ်ကဖန်တီးသည်LockProviderBean သည် datbase နှင့်အပြန်အလှန်ဆက်သွယ်ရန် JDBC template ကိုအသုံးပြုသည်။ အပေြာင်းtodipbtime ()Methody သည် Doctabase ၏အချိန်ကိုသော့ခတ်ရန်စီမံခန့်ခွဲမှုအတွက်သော့ခတ်ထားသည့်အချိန်ကိုအသုံးပြုသည်။
သင့်ဝန်ဆောင်မှုတွင်သွန်းသော့ခတ်ကိုအသုံးပြုခြင်း
ယခုပြင်ဆင်မှုပြီးဆုံးသွားပြီဆိုလျှင်သင်၏ 0 န်ဆောင်မှုတွင်သွန်းသော့ကိုမည်သို့အသုံးပြုရမည်ကိုကြည့်ကြပါစို့။ သင်သော့ခတ်ချင်သောဝန်ဆောင်မှုနည်းလမ်းရှိသည်ဆိုပါစို့။ သင်အသုံးပြုနိုင်သည်@schedulerlockသွန်းသော့ခတ်ခြင်းဖြင့်ပေးထားသောမှတ်စု။
Import.Javacrumbs.shedlock.spring.stroling.Stpring.Snotation.Schedulerlock ။ Org.Schingframework.Scheduling.Scheduling.Scheduling.Scheduled; Org.SpringFramework.StereOtyPe.Sertice ကိုတင်သွင်းပါ။ @service အများပိုင်အတန်း MyService @schedulerlock (fixedrate = 60000) @schedulerlock (fixedulerlock = "mytasklock), Lockatlask =" 59s ", Lockatlastor =" 30s ") {" ငါ့အလုပ်ကိုပြေး ... "ဒီမှာနှိပ်ပါ။ ) }
ဒီဥပမာမှာ@scheduledမှတ်ချက်ပေးသည်mytask ()စက္ကန့် 60 တိုင်းတွင်နည်းလမ်း။ အပေြာင်း@schedulerlockမှတ်ချက်သည်လျှောက်လွှာ၏ဥပမာတစ်ခုသာဤနည်းလမ်းကိုတစ်ကြိမ်တွင်လုပ်ဆောင်နိုင်ကြောင်းသေချာစေသည်။ အပေြာင်းနံမယ်attribute သည်သော့ခတ်မှုအတွက်ထူးခြားသောအမှတ်အသားဖြစ်သည်။ အပေြာင်းcurl -postforattribute သည်သော့ခတ်ထားသောအချိန်ကိုသတ်မှတ်သည်။Lockatlastforattribute သည်သော့ခတ်ထားသင့်သည့်အနည်းဆုံးအချိန်ကိုသတ်မှတ်သည်။
ကွဲပြားခြားနားသောသော့ခတ်ပံ့ပိုးပေး
ငါအစောပိုင်းကဖော်ပြခဲ့တဲ့အတိုင်း, သွန်းသော့ခတ်ကွဲပြားခြားနားသောသော့ခတ်ပံ့ပိုးပေးထောက်ခံပါတယ်။ Redis ကို Lock Provider တစ်ခုအနေနဲ့ကြည့်ဖို့ကြည့်ရအောင်။
ပထမ ဦး စွာသင်၏စီမံကိန်းသို့ပြန်လည်ထူထောင်ရေးကိုထည့်ပါ။ သင် MAVAN ကိုအသုံးပြုနေပါက
<မှီခိုမှု> <brotherid> net.javacrumbs.shedlock <artlock-spring-sking <artlock-provider-sking <artlock-spring <artlock-dry-sking <artifactid> </ artifactid> 4.42.0 <artifactid> <Redifactid> <version> 4.42.0 <group>
နှင့် gragle များအတွက်:
အကောင်အထည်ဖော်မှု 'Net.Javacrumbs.shedlock: ShedLock-Provider-Redis-Spring: 4.42.0'
ထို့နောက်သင်၏ Spring Configuration တွင် Redis Lock Provider ကို configure လုပ်ပါ။
Import.javacrumbs.Shedlock.core.docore.docore.SockProvider Import.Javacrumbs.shedlock.Provider.Provider.Sprovider.Sprovider.Sprovider.Spring.Spring.Spring.Spring.Spring.Spring.rediscrovider; org.springframework.context.nontext.nontext.annotation.Said; ORG.SPRINGFRAMEWRAMEWORK.Context.AnontEt.Context.Context.Context.Context.Context.Context.Context import org.springframework.data.redis.connection.RedisConnectionFactory; @Configuration Public Class Redisshedlockconfigfig @Bean ပြည်သူ့ Lockprovider Lockprovider (RedisconferenptionFactory RedisconnectionFactory) {RedisconnectionFrovider (RedisconferenptionFactider) ။ }
သင်အတူတူကိုသုံးနိုင်သည်@schedulerlockသင်၏ 0 န်ဆောင်မှုနည်းစနစ်များနှင့်သွန်းလောင်းထားသောသော့ခတ်သည်သော့ခတ်များကိုစီမံရန် Redis ကိုအသုံးပြုလိမ့်မည်။
ပြသာနာရှာဖွေရှင်းပေးခြင်း
တစ်ခါတစ်ရံတွင်အခြေအနေများသည်စီစဉ်ထားသည့်အတိုင်းမသွားနိုင်ပါ။ သင်သွန်းလောင်းသောသော့ခတ်ခြင်းနှင့်ပြ issues နာများရှိပါကဤနေရာတွင်ဘုံပြ problems နာများနှင့်ဖြေရှင်းနည်းများဖြစ်သည်။
- သော့ခတ်မလွှတ်ရ: စစ်ဆေးပါ
curl -postforattribute ။ အကယ်. ၎င်းသည်ရှည်လျားလွန်းပါကသော့ခတ်ခြင်းကိုအချိန်မီမထုတ်ပြန်နိုင်ပါ။ သော့ခတ်ခြင်းကိုစနစ်တကျလွတ်လွတ်လပ်လပ်ထုတ်ဖော်ပြောဆိုခြင်းကိုတားဆီးနိုင်သောသင်၏ကုဒ်တွင်ခြွင်းချက်များရှိမရှိစစ်ဆေးနိုင်သည်။ - သော့ခတ်အလုပ်ကိုကွပ်မျက်ဖြေ - သာဓကအားလုံးဟာ Lock ပံ့ပိုးသူနဲ့ configuration ကိုသုံးနေတယ်ဆိုတာသေချာအောင်လုပ်ပါ။ ဒါ့အပြင်ဒေတာဘေ့စ်သို့မဟုတ် Redis ဆာဗာများကိုဖြစ်ရပ်အားလုံးမှကြည့်ရှုနိုင်သလားစစ်ဆေးပါ။
အခြားသော့ခလောက်များကိုကျွန်ုပ်တို့ကမ်းလှမ်းသည်
ငါတို့ဟာသွန်းသော့တွေလောက်ပဲမဟုတ်ဘူး။ ကွဲပြားခြားနားသော application များအတွက်အသုံးဝင်သောအခြားသော့ခလောက်အမျိုးမျိုးကိုကျွန်တော်တို့ကမ်းလှမ်းပါတယ်။ ဥပမာအားဖြင့်ငါတို့ထွက်စစ်ဆေးပါဘေးထွက်တံခါးသော့ခတ်အရာဘေးထွက်တံခါးများလုံခြုံအတွက်ပြီးပြည့်စုံသောအရာ။ ကျွန်တော်တို့၏မိမိကိုယ်ကိုသော့ခတ်ထားသောတံခါးသင်အလိုအလျောက်သော့ခတ်ထားသောတံခါးကိုလိုချင်လျှင်အလွန်ကောင်းမွန်သောရွေးချယ်မှုတစ်ခုဖြစ်သည်။ အကယ်. သင်သည်သိုလှောင်ခန်းတစ်ခုအတွက်လုံခြုံမှုရှိရန်လိုအပ်ပါကသိုလှောင်ခန်းသော့ခတ်သင်လိုအပ်တာပဲ။
ကောက်ချက်
Shed Lock ကို Java 11 ဖြင့်အသုံးပြုခြင်းသည်သင်၏လျှောက်လွှာတွင်ဖြန့်ဝေထားသောသော့ခလောက်များကိုစီမံရန်အကောင်းဆုံးနည်းလမ်းဖြစ်သည်။ ကွဲပြားခြားနားသောသော့ခလောက်ပံ့ပိုးသူများနှင့်ပြောင်းလွယ်ပြင်လွယ်စွာပြောင်းလွယ်ပြင်လွယ်များစွာပေးရန်လွယ်ကူသည်။ သင် JDBC, Redis, Redis (သို့) အခြားအထောက်အပံ့သိုလှောင်မှုယန္တရားကိုအသုံးပြုသည်ဖြစ်စေ,
အကယ်. သင်သည်ကျွန်ုပ်တို့၏သွန်းသောသော့ခလောက်များသို့မဟုတ်ကျွန်ုပ်တို့၏အခြားသော့ခတ်ထားသောဖြေရှင်းနည်းများကို 0 ယ်ရန်စိတ်ဝင်စားပါကသင်နှင့်စကားပြောရန်ကျွန်ုပ်တို့နှစ်သက်သည်။ 0 ယ်ယူမှုဆွေးနွေးမှုများကိုစတင်ရန်နှင့်သင်၏လိုအပ်ချက်များအတွက်အကောင်းဆုံးသော့ခတ်ဖြေရှင်းချက်ကိုရှာရန်ကျွန်ုပ်တို့ထံဆက်သွယ်ပါ။
ကိုးကားခြင်း
- သော့ခတ်တရားဝင်စာရွက်စာတမ်းများသွန်းလောင်း
- Spring မူဘောင်မှတ်တမ်းတင်ခြင်း
