ভূমিকা
একটি ক্রলারের শিডিউলার (scheduler) শুরু করার মানে হলো ক্রলারকে তার সংজ্ঞায়িত শিডিউল অনুযায়ী স্বয়ংক্রিয়ভাবে চালু করার জন্য সক্ষম করা। start_crawler_schedule API এর জন্য শুধু ক্রলার নাম দরকার।
সমস্যা বিবরণ
পাইথনে boto3 লাইব্রেরি ব্যবহার করে একটি ক্রলারের শিডিউলার শুরু করা।
অ্যালগরিদম / ধাপসমূহ
- boto3 এবং botocore.exceptions ইম্পোর্ট করুন।
- ফাংশনটি crawler_name প্যারামিটার নেবে।
- AWS সেশন এবং Glue ক্লায়েন্ট তৈরি করুন।
glue_client.start_crawler_schedule(CrawlerName=crawler_name)কল করুন।- রেসপন্স মেটাডেটা রিটার্ন করবে এবং ক্রলারের শিডিউল স্টেট
SCHEDULEDহবে। - যদি ক্রলার ইতিমধ্যে রানিং থাকে বা শিডিউল ইতিমধ্যে
SCHEDULEDথাকে, তবেSchedulerRunningExceptionথ্রো হবে। - এক্সেপশন হ্যান্ডল করুন।
উদাহরণ কোড
import boto3
from botocore.exceptions import ClientError
def start_scheduler_of_a_crawler(crawler_name):
session = boto3.session.Session()
glue_client = session.client('glue')
try:
response = glue_client.start_crawler_schedule(CrawlerName=crawler_name)
return response
except ClientError as e:
raise Exception("boto3 client error in start_scheduler_of_a_crawler: " + e.__str__())
except Exception as e:
raise Exception("Unexpected error in start_scheduler_of_a_crawler: " + e.__str__())
print(start_scheduler_of_a_crawler("Data Dimension"))
আউটপুট
{'ResponseMetadata': {'RequestId': '73e50130-*****************8e', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 28 Mar 2021 07:26:55 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '2', 'connection': 'keep-alive', 'x-amzn-requestid': '73e50130-***************8e'}, 'RetryAttempts': 0}}
ব্যাখ্যা
এই API শুধু শিডিউলারকে সক্ষম করে, ক্রলারকে সাথে সাথে শুরু করে না। ক্রলার পরবর্তী শিডিউলড টাইমে चलेगा।
ক্রলারের বর্তমান স্টেট জানতে
get_crawlerব্যবহার করুন।