সহজ কিউনিং সিস্টেম?


10

একটি পণ্য পিসি দেওয়া, আমরা ঘন্টার পর ঘন্টা পটভূমিতে কিছু কাজ সম্পাদন করতে এটি ব্যবহার করতে চাই।

মূলত, আমরা কমান্ডগুলি পেতে চাই:

add-task *insert command here*
list-tasks
remove-task(s)

যুক্ত কার্যগুলি কেবল একটি সারিতে রাখা উচিত এবং ব্যাকগ্রাউন্ডে একের পর এক চালিত করা উচিত (শেলের লগআউটের পরে চালিয়ে যাওয়া)।

কোনও সাধারণ স্ক্রিপ্ট / প্রোগ্রাম রয়েছে যা এটি করে?

উত্তর:


7

এখানে একটি স্ট্যান্ডার্ড batchকমান্ড রয়েছে যা আপনার পরে কম বেশি কাজ করে। আরও স্পষ্টভাবে, batchসিস্টেম লোড যখন খুব বেশি না হয় তখন একবারে একটি কাজ করে (যাতে এটি কোনও সমান্তরালকরণ করে না) the batchকমান্ড অংশ atপ্যাকেজ।

echo 'command1 --foo=bar' | batch      
echo 'command2 "$(wibble)"' | batch
at -q b -l              # on many OSes, a slightly shorter synonym is: atq -q b
at -q b -r 1234         # Unschedule a pending task (atq gives the task ID)

এটি বলা ভুল যে batchকমান্ডটি "কোনও সমান্তরালতা করে না"। একটি কাজ শুরু করা এবং পরবর্তী কাজ শুরু করার মধ্যে সাধারণত ডিফল্ট 60 সেকেন্ড বিলম্ব হয়; তবে, প্রথম কাজটি শেষ হওয়ার জন্য অপেক্ষা করার কিছু নেই - বিকল্প atdদ্বারা নির্ধারিত মানটি -bঅতিক্রান্ত হওয়ার সাথে সাথে ব্যাচের সারি থেকে খুশিতে কাজগুলি সরিয়ে দেবে ( atdম্যান পৃষ্ঠাটি দেখুন)।
আরএসএউ

ব্যাচগুলি কার্যগুলি কঠোরভাবে সিরিয়ালাইজ করে না, সুতরাং আপনার যদি একটি একক ভাগ করা সংস্থান থাকে তবে @ সিতারামের উত্তর (টাস্ক স্পোলার) আরও ভাল কাজ করা উচিত।
এর্গোসিস

5

আর একটি সমাধান হ'ল ব্যবহার করা lpdএবং একটি কাস্টম "প্রিন্ট ড্রাইভার" তৈরি করা যা আপনার কাজগুলি চালায়। যখন আমার অনুরূপ অনুরোধ হয়েছিল তখন একটি বন্ধু আমাকে এটি কাজ করতে সহায়তা করে। এটির মতো একটি স্ক্রিপ্ট তৈরি করুন এবং এতে রাখুন /tmp/batch.sh:

#!/bin/bash

TMPFILE=$(mktemp /tmp/XXXX)
exec <"$6"
cat - > $TMPFILE
chmod a+x $TMPFILE
$TMPFILE
rm -f $TMPFILE

তারপরে চালান:

lpadmin -p batch1 -E -P /tmp/batch.sh

এটি একটি সারি শুরু করে এবং আপনি ব্যাচ 1 এর পরিবর্তে অন্যান্য নাম ব্যবহার করে আরও তৈরি করতে পারেন। এর সাথে একটি কাজ যুক্ত করুন:

lp -d batch1 /path/to/jobscript

সঙ্গে কাজগুলি পরিচালনা lpq, lprmএবং lpstat। আপনি যদি আপনার চাকরিতে আর্গুমেন্টগুলি পাস করার সাথে আরও নমনীয়তা চান তবে আপনি batch.sh স্ক্রিপ্টটি ফ্যানসিয়ার করতে পারেন।

(আমি batchএই রুটটি নেমে যাওয়ার আগে চেষ্টা করেছি , তবে হয় এটি ওএসএক্সের একটি কাতার হিসাবে কাজ করে না, বা আমি এটি ভুল ব্যবহার করছিলাম))


আমি বুঝতে পারি যে @ আরনাড "পণ্য পিসি" নির্দিষ্ট করেছেন, যার অর্থ সম্ভবত এটি ওএসএক্স নয়, যেখানে আমি এই সমাধানটি পরীক্ষা করেছি। তবে এটি পোর্টেবল হওয়া উচিত এবং এটি এর চেয়ে অনেক বেশি নমনীয় batch
জো ফিউশন

1
এটি আমার পক্ষে দেখা সবচেয়ে আসল হ্যাকগুলির মধ্যে একটি is
থিয়াগো ম্যাসাডো

দুঃখের বিষয়, এটি আর কাজ করে না। github.com/apple/cups/commit/…
wdkrnls

4

প্রচুর কুইউিং সিস্টেম রয়েছে তবে প্রায়শই খুব বিশেষীকরণ করা হয়।

আপনি atসময়সূচী দেখতে পারেন। এটি cronকিছু উপায়ে হলেও এটি পুনরাবৃত্ত চাকরির চেয়ে এক সময়ের কাজের জন্য সারিটির মতো সেটআপ। এটি সময় ব্যতীত অন্যান্য মানদণ্ডগুলিতে জিনিসগুলি "শিডিয়ুল" করতে পারে যেমন সিস্টেম লোড বা কাজের ক্রম।

আপনার প্রিয় ডিস্ট্রোতে অবশ্যই এটির জন্য প্যাকেজ থাকবে।


2

আমি লক্ষ্য করেছি যে এই প্রশ্নটি বেশ কয়েক বছর পুরনো, সুতরাং এটি মূল পোস্টারটি নাও সহায়তা করতে পারে তবে এটি অন্য কাউকে সাহায্য করতে পারে।

প্রথম: "টাস্ক স্পোলার" এর উত্তর। এটি বেশ শক্তিশালী এবং কমপক্ষে ফেডোরার এটি রয়েছে।

তবে আমি প্রচুর সার্ভার ব্যবহার করি, আমি প্রচুর ঝামেলা ছাড়াই স্বেচ্ছাসেবী প্যাকেজ ইনস্টল করতে পারি না, তাই আমার এমন কিছু প্রয়োজন যা আদর্শভাবে খাঁটি বাশ (বা পার্ল, বা এ জাতীয়)।

এটির সাথে কিছুক্ষণ লড়াই করার পরে, আমি একটি খাঁটি বাশ বাস্তবায়ন নিয়ে এসেছি যা এখন পর্যন্ত ঠিকঠাকভাবে কাজ করছে বলে মনে হচ্ছে। আপনি এটি https://github.com/sitaramc/bq এ খুঁজে পেতে পারেন ।

এটি কেবলমাত্র একটি বাশ স্ক্রিপ্ট তাই ইনস্টলেশনটি তুচ্ছ। যাইহোক, এটি আপনার দ্বিতীয় এবং তৃতীয় প্রয়োজনীয়তাগুলিকে পাঞ্জা দেয় (তবে এটিগুলি কার্যকর করার জন্য এটি তুচ্ছ হওয়া উচিত)।

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


ডিবিয়ান প্যাকেজটি টাস্ক-স্পোলার, এক্সিকিউটেবল "টিএসপি" পরিবর্তে "টিএসপি" হয় যা অন্য কোনও কিছুর সাথে সংঘর্ষ হয়। আমি এটিও পছন্দ করি কারণ আপনি সারিতে থাকা কাজগুলি পুনঃক্রম করতে পারেন, আপনি এটি / ব্যাচ দিয়ে তা করতে পারবেন না।
এরগোসিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.