প্রতিদিনের জন্য বসন্ত ক্রোন এক্সপ্রেশন 1: 01: am


202

আমি একটি স্প্রিং ক্রোন অভিব্যক্তির ভিত্তিতে একটি নির্দিষ্ট সময়সূচীতে আমার কোডটি কার্যকর করার চেষ্টা করছি। আমি চাই প্রতিদিন 1: 01: 00 এ কোডটি কার্যকর করা হোক। আমি নিম্নলিখিত প্রকাশটি চেষ্টা করেছিলাম, কিন্তু এটি আমার পক্ষে জ্বলে উঠেনি। এখানে সিনট্যাক্সে কী সমস্যা?

@Scheduled(cron = "0 1 1 ? * *")
public void resetCache() {
    // ...
}



আমার ক্রোন এক্সপ্রেশন 0 0 0 1 জন মন গত বছর পর্যন্ত কাজ করছিল। ১ লা জানুয়ারি অবৈধ ক্রোন এক্সপ্রেশন বলে কাজ করা বন্ধ করুন। যদিও এটি খুব কম ফ্রিকোয়েন্সিের জন্য তৈরি হয়েছিল তবে আমরা টিসি সার্ভার চালাতে সক্ষম হয়েছি। জানুয়ার পরে 1 এটি না। আমি 0 0 7 এ কখন বদলেছি? * এটি কাজ শুরু করে। আমি জানতে আগ্রহী যে কেন 0 0 0 1 গত জানুয়ারিতে জ্যান মন সেখানে কাজ করা বন্ধ করে দিয়েছে well
স্প্যান্ডে

0 0 0 1 জন মন ভুল অভিব্যক্তি হতে পারে, ভাল এই খুব ভাল এটি কাজ ছিল এবং টিসি সার্ভার কখনও অভিযোগ না
spandey

উত্তর:


573

সাথে চেষ্টা করুন:

@Scheduled(cron = "0 1 1 * * ?")

নীচে আপনি বসন্ত ফোরামের উদাহরণ ধরণগুলি খুঁজে পেতে পারেন:

* "0 0 * * * *" = the top of every hour of every day.
* "*/10 * * * * *" = every ten seconds.
* "0 0 8-10 * * *" = 8, 9 and 10 o'clock of every day.
* "0 0 8,10 * * *" = 8 and 10 o'clock of every day.
* "0 0/30 8-10 * * *" = 8:00, 8:30, 9:00, 9:30 and 10 o'clock every day.
* "0 0 9-17 * * MON-FRI" = on the hour nine-to-five weekdays
* "0 0 0 25 12 ?" = every Christmas Day at midnight

ক্রোন এক্সপ্রেশনটি ছয়টি ক্ষেত্র দ্বারা প্রতিনিধিত্ব করা হয়:

second, minute, hour, day of month, month, day(s) of week

(*) মানে যেকোনও মেলে

*/X মানে "প্রতি এক্স"

?("কোনও নির্দিষ্ট মান নয়") - যখন আপনাকে দুটি ক্ষেত্রের মধ্যে যেখানে চরিত্রের অনুমতি দেওয়া হয়েছে সেগুলির মধ্যে একটিতে নির্দিষ্ট করার দরকার রয়েছে তবে অন্যটি নয় useful উদাহরণস্বরূপ, আমি যদি আমার ট্রিগারটি মাসের কোনও নির্দিষ্ট দিনে (বলুন, 10 তম) আগুন জ্বালাতে চাই, তবে সপ্তাহের কোন দিনটি ঘটে তা আমি চিন্তা করি না, আমি দিনের মধ্যে "10" রাখব- মাসের মাঠ এবং "?" সপ্তাহের দিন ক্ষেত্রের।

পিএস: এটিকে কাজ করার জন্য, আপনার অ্যাপ্লিকেশন প্রসঙ্গে এটি সক্ষম করে রাখার কথা মনে রাখবেন: https://docs.spring.io/spring/docs/3.2.x/spring-framework-references/html/scheduling.html#schedolve- টীকা-সমর্থন


15
ফর্ম্যাটটি এখানে বসন্তে নিজেই নথিভুক্ত করা হয়েছে - ডকস.স্প্রিং.আই.ও.
৩.০.x

1
আমার ধারণা স্প্রিং ক্রোন কয়েক সেকেন্ডের বিধানও সরবরাহ করতে সক্ষম তবে সাধারণ ইউনিক্স ক্রোনটি মিনিট বেইসড ... ইউনিক্স ম্যান পেজ মিনিটের মতো সময়টি সর্বনিম্নতম একক যা কনফিগার করা যায়।
ন্যানোসফ্ট

8
"এর তাত্পর্য কি?" চরিত্র? এটি কি কেবল "সপ্তাহের দিন" ক্ষেত্রে প্রয়োগ হয়? আমরা 'প্রতিস্থাপন' করলে এটি কি কাজ করবে / কিছু আলাদা করবে? ক্রিসমাস দিবসে উদাহরণস্বরূপ '*' দিয়ে?
আটকান

1
: @encrest এখানে কটাক্ষপাত stackoverflow.com/questions/11499740/...
gipinani


90

আমার সময়সূচীর জন্য, আমি এটি প্রতিদিন সকাল 6 টায় গুলি চালাতে ব্যবহার করছি এবং আমার ক্রোন স্বরলিপিটি হ'ল:

0 0 6 * * *

আপনি যদি 1: 01: am চান তবে সেট করে দিন

0 1 1 * * *

সময়সূচীর জন্য সম্পূর্ণ কোড

@Scheduled(cron="0 1 1 * * *")
public void doScheduledWork() {
    //complete scheduled work
}

** খুব গুরুত্বপূর্ণ

আপনার সময়সূচীর গুলি ছোঁড়ার সময়টির সঠিকতা সম্পর্কে নিশ্চিত হওয়ার জন্য, আপনাকে এই জাতীয় অঞ্চলের মান নির্ধারণ করতে হবে (আমি ইস্তাম্বুলে আছি):

@Scheduled(cron="0 1 1 * * *", zone="Europe/Istanbul")
public void doScheduledWork() {
    //complete scheduled work
}

আপনি এখান থেকে সম্পূর্ণ সময় অঞ্চল মানগুলি পেতে পারেন ।

দ্রষ্টব্য: আমার স্প্রিং ফ্রেমওয়ার্ক সংস্করণটি হ'ল: 4.0.7.REREASE LE


1
আমি জানি না কেন আপনার উত্তরটিতে কেবল 12 টি রয়েছে এমনকি এটি এখানে একমাত্র সঠিক উত্তর!

2
আপনাকে অনেক ধন্যবাদ @ মোয়ায়েডআবুজাবের। স্কোরটি গুরুত্বপূর্ণ নয়, যদি বিকাশকারীরা আমার উত্তরগুলি দিয়ে তাদের সমস্যাগুলি ঠিক করতে সক্ষম হন তবে তা যথেষ্ট che
বাহাদির তাসদেমির

আমি কি এক্সএমএল কনফিগার শ্যাডুলারের সাথে জোন ব্যবহার করতে পারি <task:scheduled ref="paypalCronJob" method="runTask" cron="0 0 6 * * * ?"/>??
শরীফ

3
সময় অঞ্চলটি উল্লেখ করার জন্য থাম্বস আপ করুন
ফরহাদ

2
ধন্যবাদ, @ ফোরহাদ যদি আপনি কোনও বিকাশকারী হন এবং তারিখ এবং সময় সম্পর্কিত যে কোনও বিষয় নিয়ে কাজ করে থাকেন, আপনাকে টাইমস্ট্যাম্প, সময় অঞ্চল এবং রূপান্তরগুলির বিশদ জানতে হবে। অন্যথায়, আপনার ডেটা বোকা হবে
বাহাদির তাসদেমির

22

আপনি নিজের পদ্ধতির সাথে এ্যানোটেট ব্যবহার করতে পারেন @Scheduled(cron ="0 1 1 * * ?")

0 - সেকেন্ডের জন্য

1- 1 মিনিট

1 - দিনের ঘন্টা।


12

জিপিনির উত্তর থেকে কিছু অনুপস্থিত

@Scheduled(cron = "0 1 1,13 * * ?", zone = "CST")

এটি 1.01 এবং 13.01 এ কার্যকর করা হবে। যখন আপনি দিনে একাধিকবার কোনও প্যাটার্ন ছাড়াই কাজ চালানোর প্রয়োজন হয় তখন এটি ব্যবহার করা যেতে পারে।

আপনি যখন রিমোট সার্ভারগুলিতে মোতায়েন করেন তখন জোন বৈশিষ্ট্যটি খুব কার্যকর। এটি বসন্ত 4 এর সাথে পরিচয় হয়েছিল।


2
নোট করুন যে সংক্ষিপ্তসারগুলির সমর্থন (সময় অঞ্চলের জন্য) কেবল জেডিকে 1.1.x সামঞ্জস্যের জন্য এবং পুরো নামগুলি ব্যবহার করা উচিত
জাভাদোক

6

একটি জিনিস আমি লক্ষ্য করেছি: বসন্ত ক্রোনট্রিগার ক্রোন নয়। আপনি বৈধ ক্রোন এক্সপ্রেশনতে 7 পরামিতি দিয়ে শেষ করতে পারেন (আপনি ক্রোনমেকার ডটকম এ যাচাই করতে পারেন) এবং তারপরে বসন্ত এটি গ্রহণ করবে না। বেশিরভাগ ক্ষেত্রে আপনি কেবল সর্বশেষ প্যারামিটারটি মুছুন এবং সবকিছু ঠিকঠাক কাজ করে।


1
"ক্রোনট্রিগার কোয়ার্টজ নয়"
স্যান্ডি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.