আমার কাছে পাইথন প্রোগ্রাম রয়েছে যা "থ্রেডিং" মডিউলটি ব্যবহার করে। প্রতি সেকেন্ডে একবার, আমার প্রোগ্রামটি একটি নতুন থ্রেড শুরু করে যা ওয়েব থেকে কিছু ডেটা নিয়ে আসে এবং এই ডেটাটি আমার হার্ড ড্রাইভে সঞ্চয় করে। এই ফলাফলগুলি সংরক্ষণ করার জন্য আমি স্ক্লাইট 3 ব্যবহার করতে চাই, তবে আমি এটি কাজ করতে পারি না। সমস্যাটি নিম্নলিখিত লাইনটি সম্পর্কে বলে মনে হচ্ছে:
conn = sqlite3.connect("mydatabase.db")
- আমি যদি প্রতিটি থ্রেডের মধ্যে কোডের এই লাইনটি রাখি, তবে আমি একটি অপারেশনাল ইরর পেয়েছি যা আমাকে জানিয়েছে যে ডাটাবেস ফাইলটি লক করা আছে। আমি অনুমান করি এর অর্থ এই যে অন্য একটি থ্রেডে স্কাইলাইট 3 সংযোগের মাধ্যমে mydatedia.db খোলা আছে এবং এটি লক হয়ে গেছে।
- আমি যদি এই প্রোগ্রামের কোডটি মূল প্রোগ্রামটিতে রেখেছি এবং প্রতিটি থ্রেডে সংযোগ বস্তু (সংযোগ) পাস করি তবে আমি একটি প্রোগ্রামিংইরার পেয়েছি যে থ্রেডে তৈরি এসকিউএলাইট অবজেক্টগুলি কেবল একই থ্রেডে ব্যবহার করা যেতে পারে।
পূর্বে আমি আমার সমস্ত ফলাফল CSV ফাইলগুলিতে সঞ্চয় করছিলাম এবং এই ফাইল-লক করার কোনও সমস্যা নেই। আশা করি স্ক্লাইট দিয়ে এটি সম্ভব হবে। কোন ধারনা?