সময়সূচী আর স্ক্রিপ্ট


113

আমি একটি আর স্ক্রিপ্ট লিখেছি যা একটি ডাটাবেস থেকে কিছু তথ্য টেনে নিয়ে আসে, এটিতে বেশ কয়েকটি অপারেশন করে এবং আউটপুটটিকে একটি নতুন ডাটাবেসে পোস্ট করে।

আমি চাই এই স্ক্রিপ্টটি প্রতিদিন একটি নির্দিষ্ট সময়ে চালানো হোক তবে কার্যকরভাবে এটি করার কোনও উপায় আমি খুঁজে পাচ্ছি না।

এই সমস্যাটি সমাধান করার জন্য আমি যে সংস্থানটি দেখতে পারি তার প্রস্তাব কি কেউ দিতে পারেন? আমি এই স্ক্রিপ্টটি একটি উইন্ডোজ মেশিনে চালাচ্ছি।

উত্তর:


107

আসলে উইন্ডোজ এর অধীনে আপনাকে শিডিয়ুলার ব্যবহার করতে প্রথমে একটি ব্যাচ ফাইল তৈরি করতে হবে না ।

  • সময়সূচীটি খুলুন: START -> সমস্ত প্রোগ্রাম -> অ্যাকসেসরিজ -> সিস্টেম সরঞ্জাম -> সময়সূচী
  • একটি নতুন টাস্ক তৈরি করুন
  • ট্যাব অ্যাকশনের অধীনে, একটি নতুন ক্রিয়া তৈরি করুন
  • শুরু প্রোগ্রাম নির্বাচন করুন
  • Rscript.exe ব্রাউজ করুন যা এখানে স্থাপন করা উচিত: যেমন:
    "সি: \ প্রোগ্রাম ফাইল \ আর \ আর -\.০.২ \ বিন \ x\\ \ Rscript.exe"
  • পরামিতি ক্ষেত্রে আপনার ফাইলের নাম ইনপুট করুন
  • স্টার্ট ইন ফিল্ডে স্ক্রিপ্টটি সন্ধান করতে হবে এমন পথে ইনপুট করুন
  • যেতে ট্রিগারসমূহ ট্যাব
  • নতুন ট্রিগার তৈরি করুন
  • প্রতিটি দিন , মাস, ... কয়েকবার পুনরাবৃত্তি করা উচিত বা যা আপনার পছন্দ হয় তা বেছে নিন

3
হ্যাঁ, আপনাকে ধন্যবাদ! এটি আমার জন্য কাজ করেছিল, উপরের নয় এবং ওয়েবের চারপাশে ভাসমান অন্যান্য বিভিন্ন উত্তর নয়। আমি শুধু যোগ হবে নিশ্চিত করুন ফাইল এক্সটেনশন হল .Rএবং না .r
esa606

আপনি এর দ্বারা ঠিক কী বোঝাতে চাইছেন - আপনি কী হবে বলে আশা করবেন? হতে পারে এটি নিজের কোনও প্রশ্নে shouldোকা উচিত (এসও-তে ইতিমধ্যে একটি উত্তর রয়েছে)।
পিটারমিইসনার

1
ডস উইন্ডোটি ছোট করার কোনও উপায় আছে কি?
জর্জ ডোনটাস

58

ধরুন আপনার আর স্ক্রিপ্টটি mytest.rঅবস্থিত D:\mydocuments\, আপনি নিম্নলিখিত কমান্ড সহ একটি ব্যাচ ফাইল তৈরি করতে পারেন:

C:\R\R-2.10.1\bin\Rcmd.exe BATCH D:\mydocuments\mytest.r

তারপরে এটি একটি নতুন কার্য হিসাবে উইন্ডো টাস্ক শিডিয়ুলারে যুক্ত করুন, সেখানে ট্রিগার শর্তগুলি সেট করে।

আপনি ব্যাচ ফাইলটি বাদ দিতে পারেন। টাস্ক শিডিয়ুলারে টেক্সটবক্সে সেট করুন C:\R\R-2.10.1\bin\Rcmd.exeএবং বাকি প্রাথমিক কমান্ড হিসাবে দিন:program/scriptArgumentsBATCH D:\mydocuments\mytest.r

উইন্ডোজ টাস্ক শিডিয়ুলারের মাধ্যমে আর টাস্কের শিডিং (ফেব্রুয়ারী 11, 2015 এ পোস্ট করা হয়েছে)

টাস্কুলেডআরআর: উইন্ডোজ টাস্ক ম্যানেজারের সাথে আর স্ক্রিপ্টগুলির শিডিয়ুল করার জন্য আর প্যাকেজ (মার্চ 17, 2016 এ পোস্ট করা হয়েছে)

সম্পাদনা

আমি সম্প্রতি আবার ব্যাচ ফাইলগুলির ব্যবহার গ্রহণ করেছি, কারণ আমি চেয়েছিলাম যে সেন্টিমিডি উইন্ডোটি হ্রাস করা উচিত (আমি অন্য কোনও উপায় খুঁজে পাইনি)।

বিশেষত, আমি Actionsনিম্নলিখিত হিসাবে উইন্ডোজ টাস্ক শিডিয়ুলার ট্যাবটি পূরণ করি :

Program/script:

cmd.exe

Add arguments (optional):

/ সি শুরু / মিনিট ডি: \ মাইডোকিউমেন্টস \ মাইস্টেস্ট.ব্যাট ^ এবং প্রস্থান করুন

মাইস্টেস্ট.বাটের বিষয়বস্তু :

সি: \ আর \ আর -3.5.2 .2 বিন \ x64 64 Rscript.exe ডি: \ মাইডোকিউমেন্টস \ মাইস্টেস্ট.আর প্যারাম


16
ব্যবহার Rscriptকরা ভাল R BATCH। যে সিস্টেমগুলি লোয়ার- এবং আপার-কেসের মধ্যে পার্থক্য করতে পারে সেগুলিও পায় r
ডার্ক এডেলবুয়েটেল

ধন্যবাদ, আমি এটি ব্যবহার করিনি। যেমনটি আমি দেখেছি, আর্গুমেন্টগুলি স্ক্রিপ্টেও দেওয়া যেতে পারে এবং কমান্ডআরগস ব্যবহার করে অ্যাক্সেস করা যায়
জর্জ ডোনটাস

5

এটি করার জন্য আরস্টুডিওতে বিকল্প অন্তর্নির্মিত রয়েছে, প্যাকেজগুলির নীচে প্রথমে শিডিয়ুলার ইনস্টল করুন

  install.packages('data.table')
  install.packages('knitr')
  install.packages('miniUI')
  install.packages('shiny')
  install.packages("taskscheduleR", repos = "http://www.datatailor.be/rcube", type = 
  "source")

ইনস্টল করার পরে যান

**TOOLS -> ADDINS ->BROWSE ADDINS ->taskscheduleR -> Select it and execute it.**

এখানে চিত্র বর্ণনা লিখুন


এটি আমার পক্ষে কাজ করে না। আমি যখন অ্যাডিন চালানোর চেষ্টা করি তখন আমি নিম্নলিখিত ত্রুটিগুলি পাই: প্রয়োজনীয় নামস্থান লোড করা: চকচকে ত্রুটিযুক্ত হয়ে ব্যর্থ হয়েছে: 'ম্যাট্রিকের কলামগুলির সংখ্যার মিল থাকতে হবে (আর্গ 2 দেখুন)' প্রয়োজনীয় নেমস্পেস লোড করা হচ্ছে: miniUI ত্রুটির সাথে ব্যর্থ হয়েছে: 'কলামগুলির সংখ্যা ম্যাট্রিকের অবশ্যই ম্যাচ করা উচিত (আরগ 2 দেখুন) 'রাইবাইন্ডে ত্রুটি (তথ্য, getNamespaceInfo (এনভি, "এস 3 মিথ্যাডস")): ম্যাট্রিকের কলামের সংখ্যা অবশ্যই মেলাতে হবে (আর্গ 2 দেখুন)
13:48

এই ত্রুটিটি চেষ্টা ও সমাধানের জন্য কেবলমাত্র ডেটা আপডেট হয়েছে and এবং এখন আমি নিম্নলিখিতটি পেয়েছি: ত্রুটি: অবজেক্ট 'as.xts' নেমস্পেস 'ডেটা.ট্যাবিল' লোড করার সময় খুঁজে পাওয়া যায় নি
শ্রাবণজকবি

1
এগুলি কাজ করার জন্য কি আর স্টুডিওকে খোলা থাকার দরকার আছে?
cage1

1
আমি মনে করি আর স্টুডিওটি যদি কাছাকাছি থাকে তবে এটি স্বয়ংক্রিয়ভাবে এটি খুলবে এবং স্ক্রিপ্টটি চালাবে।
জিশান

4

আমি SCHTASKSপ্রোগ্রামের মাধ্যমে আমার কাজগুলি সেট আপ করেছি । প্রারম্ভকালে স্ক্রিপ্টগুলি চালনার জন্য, আপনি লাইনগুলি বরাবর কিছু লিখবেন

SCHTASKS /Create /SC ONSTART /TN MyProgram /TR "R CMD BATCH --vanilla d:\path\to\script.R"

আরও বিশদ জন্য এই ওয়েবসাইট দেখুন SCHTASKSমাইক্রোসফ্টের ওয়েবসাইটে আরও বিশদ ।



2

টাস্ক শিডিয়ুলার সেট আপ করা হচ্ছে

পদক্ষেপ 1) টাস্ক শিডিয়ুলারটি খুলুন (শুরু> টাস্ক শিডিয়ুলার অনুসন্ধান করুন)

পদক্ষেপ 2) "অ্যাকশন"> "টাস্ক তৈরি করুন" ক্লিক করুন

পদক্ষেপ 3) "কেবলমাত্র ব্যবহারকারী লগ-ইন থাকাকালীন চালান" নির্বাচন করুন, "সর্বোচ্চ প্রাইভেলিজ সহ চালান" নির্বাচন করুন, আপনার কার্যটির নাম দিন, "উইন্ডোজ ভিস্তা / উইন্ডোজ সার্ভার ২০০৮" এর জন্য কনফিগার করুন

এখানে চিত্র বর্ণনা লিখুন

পদক্ষেপ 4) "ট্রিগারস" ট্যাবটির নীচে সেট করুন যখন আপনি স্ক্রিপ্টটি চালাতে চান

পদক্ষেপ 5) "ক্রিয়াগুলি" ট্যাব এর অধীনে, Rscript.exe ফাইলের সম্পূর্ণ অবস্থান রাখুন, অর্থাত্

"C:\Program Files\R\R-3.6.2\bin\Rscript.exe" (include the quotes)

সঙ্গে সঙ্গে আপনার স্ক্রিপ্ট নাম রাখুন -eএবং source()এর মতো এটিকে মোড়কে আর্গুমেন্ট মধ্যে:

-e "source('C:/location_of_my_script/test.R')"

এখানে চিত্র বর্ণনা লিখুন

টাস্ক শিডিয়ুলারে নির্ধারিত কোনও রুপ্রিপ্টের সমস্যা নিবারণ

আপনি যখন টাস্ক শিডিয়ুলার ব্যবহার করে কোনও স্ক্রিপ্ট চালান, কোনও সমস্যা সমাধান করা কঠিন কারণ আপনি কোনও ত্রুটি বার্তা না পেয়েছেন।

এটি sink()আর-তে ফাংশনটি ব্যবহার করে সমাধান করা যেতে পারে যা আপনাকে নির্দিষ্ট করা কোনও ফাইলের মধ্যে সমস্ত ত্রুটি বার্তা আউটপুট করতে দেয়। আপনি এখানে এটি কীভাবে করতে পারেন তা এখানে:

# Set up error log ------------------------------------------------------------
error_log <- file("C:/location_of_my_script/error_log.Rout", open="wt")
sink(error_log, type="message")

try({

# insert your code here

})

আপনার রুপির লিপিটি তৈরি করতে আপনাকে অন্য যে জিনিসটি পরিবর্তন করতে হবে তা হ'ল আপনার স্ক্রিপ্টের কোনও ফাইল পাথের পুরো ফাইল পাথ নির্দিষ্ট করা।

এটি টাস্ক শিডিয়ুলারে কাজ করবে না:

source("./functions/import_function.R")

আপনার রুপলিপির মধ্যে আপনি যে কোনও স্ক্রিপ্ট স্যুরস করছেন তার পুরো ফাইল পাথ নির্দিষ্ট করতে হবে:

source("C:/location_of_my_script/functions/import_function.R")

1

এই পদক্ষেপগুলির কোনও সংমিশ্রণ অনুসরণ করার পরে এবং আপনি "Argument Batch Ignored"আর.এক্সি চালানোর পরে ত্রুটি পেয়েছেন, এটি চেষ্টা করুন, এটি আমার পক্ষে কাজ করে।

উইন্ডোজ টাস্ক শিডিয়ুলারে:

BATCH "C:\Users\desktop\yourscript.R"আর্গুমেন্ট ক্ষেত্রে প্রতিস্থাপন করুন

সঙ্গে

CMD BATCH --vanilla --slave "C:\Users\desktop\yourscript.R"


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