ู
ูู ุงูุชูููู ุงูููุงุณููู ูุฅุฏุฎุงูุงุช ู
ูุงู
cron ูู ูุธุงู
ุงูุชุดุบูู Linux ูู ูู
ุง ููู:
ุชุดูุฑ ุงูู
ุนูู
ุงุช ุงูุฎู
ุณ ุงูุฃููู ุฅูู ููุช ุชูููุฐ ูุฐู ุงูู
ูู
ุฉ ุ ูุงูุณุงุฏุณุฉ - ุงูุฃู
ุฑ ููุณู ุ ุงูุฐู ูุฌุจ ุชุดุบููู. ู
ุนูู
ุงุช ุงูููุช ูู: ุงูุฏูุงุฆู ูุงูุณุงุนุงุช ูุงูุฃูุงู
ูุงูุฃุดูุฑ ูููู
ุงูุฃุณุจูุน. ุนูุงูุฉ ุนูู ุฐูู ุ ูุฌุจ ุชู
ุซูู ุฌู
ูุน ุงูุฃุฑูุงู
ุนูู ุฃููุง ุฃุนุฏุงุฏ ุตุญูุญุฉ ุฃู ูู ุจูุงุก ุฌู
ูุฉ ุฎุงุต .ููุชูุฌุฉ ูุฐูู ุ ูุฅู ุงูุญุฏ ุงูุฃุฏูู ูููุชุฑุฉ ุงูุฒู
ููุฉ ูุจุฏุก ุงูุฃู
ุฑ ู
ุฑุฉ ูุงุญุฏุฉ ูู ุงูุฏูููุฉ.ููุนุฏูุฏ ู
ู ุงูู
ูุงู
ุ ููุงู ุญุงุฌุฉ ุฅูู ุชูููุฐ ุงูุฃูุงู
ุฑ ุจุดูู ุฃูุซุฑ ุชูุฑุงุฑูุง ุ ุนูู ุณุจูู ุงูู
ุซุงู ุ ูู 10 ุซูุงูู. ุจุงููุณุจุฉ ูุจุนุถ ู
ูุงู
ุฃุชู
ุชุฉ ุนู
ููุงุช ุงูุฃุนู
ุงู ุ ูุง ูุชุฌุงูุฒ ุงูุญุฏ ุงูุฃูุตู ุงูู
ุณู
ูุญ ุจู ููุชุฃุฎูุฑ ุบุงูุจูุง 1-1.5 ุซุงููุฉ.ุจุงูุทุจุน ุ ูุฑูู ุงูููุงุณููู ุบูุฑ ู
ูุงุณุจ ููุฐุง - ูุญุชุงุฌ ุฅูู ุชุญุณูู.ู
ุง ููู ูู ุชูููุฐ ุฎุทูุฉ ุจุฎุทูุฉ ูุฅูุดุงุก ูุธุงุฆู ุฅุถุงููุฉ (ูู PHP) ุฅูู cron ุงูููุงุณููู ุนูู Linux ุจุงุณุชุฎุฏุงู
ุญู
ุงูุฉ ุฅุถุงููุฉ ุถุฏ ุนู
ููุงุช ุฅุนุงุฏุฉ ุงูุชุดุบูู.ุฅุนุฏุงุฏ ุงูู
ูุงู
ูุฅุนุฏุงุฏ ูุฑูู
ุนูู ุณุจูู ุงูู
ุซุงู ุ ุณูุณุชุฎุฏู
ุงูู
ูู
ุฉ ุงูุชุงููุฉ:- ูู ุงููุงุฌูุฉ ุงูุฃู
ุงู
ูุฉ ุ ูู
ูู ููู
ุณุชุฎุฏู
ุงูุจุฏุก ูู ุชูููุฐ ุจุนุถ ุงูู
ูุงู
ุงูู
ุนูุฏุฉ ุจุงูููุฑ ููู ุงูุฒุฑ "ุชุดุบูู" ุ
- ุชุจูุบ ุงูููุงูุฉ ุงูุฎูููุฉ ุจุนุฏ ูุชุงุจุฉ ุณุทุฑ ุฌุฏูุฏ ูู ูุงุนุฏุฉ ุงูุจูุงูุงุช ุงูู
ุณุชุฎุฏู
ุจุงูุชุฃููุฏ ุ
- ู
ู ุฎูุงู cron ุ ุณูู "ูุชุชุจุน" ูุฐู ุงูู
ูุงู
ุงูุฌุฏูุฏุฉ ูููู
ููุง ุจุฃุณุฑุน ู
ุง ูู
ูู ุญุชู ูุง ูุญุตู ุงูู
ุณุชุฎุฏู
ุนูู ุงููุชูุฌุฉ ูู ุฏูููุฉ ูุงุญุฏุฉ ุ ูููู ุนูู ุงูููุฑ *
* ุฅุฐุง ููุช ุชุณุชุฎุฏู
ุฅุทูุงู ุงูุฃูุงู
ุฑ ุ ูู ุงูุฏูููุฉ ุงููุงุญุฏุฉ ููุท ุ ูุณุชุจุฏุฃ ุงูู
ูู
ุฉ ุนูุฏู
ุง ุชุตู ุงูุซูุงูู ุฅูู ุฃูุฑุจ ุตูุฑ (ุจุฏุงูุฉ ุฏูููุฉ ุฌุฏูุฏุฉ). ูุฐูู ุ ูู ุงููู
ูุฐุฌ ุงูููุงุณููู ุ ุณูุญุชุงุฌ ุงูู
ุณุชุฎุฏู
ุฅูู ุงูุชุธุงุฑ ุงูุชูููุฐ ู
ู 0 ุฅูู 59 ุซุงููุฉ.ูุฐูู ุ ุณูุชู
ุชูููู cron ูู ุดููู ุงูุฃูุตู ุ ุฃู ู
ุฑุฉ ูู ุงูุฏูููุฉ:* * * * * /usr/bin/php -q /run.php > /dev/null 2>&1
ุฏูุฑุฉ ูุงุญุฏุฉ
ูู ุงูุจุฏุงูุฉ ุ ูุฌุจ ุฃู ุชูุฑุฑ ุนุฏุฏ ุงูู
ุฑุงุช ุงูุชู ุณูุทูุจ ูููุง ู
ูุงู
ุฌุฏูุฏุฉ ูู ูุงุนุฏุฉ ุงูุจูุงูุงุช - ุจูุงุกู ุนูู ุฐูู ุ ุณูุชุบูุฑ ุนุฏุฏ ุงูุฏูุฑุงุช ูุงูููู
ุงูู
ูุทูู (ุงููุธููุฉ sleep
) .ูู ุงูู
ุซุงู ุงูุญุงูู ุ ูุชู
ุงุณุชุฎุฏุงู
ุฎุทูุฉ ู
ู 10 ุซูุงูู. ูุฐูู ุ ูููู ุนุฏุฏ ุงูุฏูุฑุงุช 60/10 = 6. ุงูุฅุฌู
ุงูู ุ ุงูุฑู
ุฒ ุงูุนุงู
ูู ูู
ุง ููู:for ($cycle = 1; $cycle <= 6; $cycle++) {
$all_tasks = get_all_tasks();
if ($all_tasks) {
foreach($all_tasks as $one_task) {
solve_one_task($one_task);
}
}
sleep(10);
}
ุชูุถูุญ : ูู ูุฐุง ุงูู
ุซุงู ุ ูุชู
ุงุณุชุฎุฏุงู
ุฎุทูุฉ ู
ู 10 ุซูุงูู ุ ูุงูุชู ูู
ูู ุฃู ุชููุฑ ุงูุญุฏ ุงูุฃุฏูู ู
ู ุงููุงุตู ุงูุฒู
ูู ูุชูููุฐ ุงูุจุฑูุงู
ุฌ ุงููุตู ู
ุฑุฉ ูุงุญุฏุฉ ูู 10 ุซูุงูู. ููููุง ูุฐูู ุ ู
ู ุฃุฌู ุชูููุฐ ุฃูุซุฑ ุชูุฑุงุฑูุง ุ ูุฌุจ ุนููู ุชุบููุฑ ุนุฏุฏ ุงูุฏูุฑุงุช ู "ููุช ุงูููู
".ุชุฌูุจ ุชูููุฐ ุงูู
ูุงู
ุงูู
ุชูุฑุฑุฉ
ูู ุงููู
ูุฐุฌ ุงูู
ูุฏู
ุ ููุงู ุดู ูุงุญุฏ ุ ููู ุงูุชูููุฐ ุงูู
ุชูุฑุฑ ููู
ูู
ุฉ ุฅุฐุง ูุงูุช ูุฏ ุจุฏุฃุช ุจุงููุนู. ูุตุจุญ ูุฐุง ุตุญูุญูุง ุจุดูู ุฎุงุต ุฅุฐุง ูุงูุช ุงูู
ูู
ุฉ "ุตุนุจุฉ" ูุชุชุทูุจ ุจุถุน ุซูุงูู ูุชูููุฐูุง.ูุคุฏู ูุฐุง ุฅูู ุญุฏูุซ ู
ุดููุฉ ุฅุนุงุฏุฉ ุชูููุฐ:- ุงููุธููุฉ
solve_one_task()
ููุฏ ุงูุชุดุบูู ุจุงููุนู ุ ููููุง ูู
ุชูู
ู ุนู
ููุง ุจุนุฏ ุ - ูุฐูู ุ ูู ูุงุนุฏุฉ ุงูุจูุงูุงุช ุ ูุง ุชุฒุงู ุงูู
ูู
ุฉ ู
ู
ูุฒุฉ ุนูู ุฃููุง ูู
ูุชู
ุชูููุฐูุง ุ
- ุณุชุญุตู ุงูุฏูุฑุฉ ุงูุชุงููุฉ ุนูู ูุฐู ุงูู
ูู
ุฉ ู
ุฑุฉ ุฃุฎุฑู ูุชููู
ุจุชุดุบูู ุงููุธููุฉ
solve_one_task()
ู
ุฑุฉ ุฃุฎุฑู ุจููุณ ุงูู
ูู
ุฉ.
ุจุงูุทุจุน ุ ูู
ูู ุญู ูุฐุง ุ ุนูู ุณุจูู ุงูู
ุซุงู ุ ุนู ุทุฑูู ุชุบููุฑ ุจุนุถ ุงูุญุงูุฉ ูู ูุงุนุฏุฉ ุงูุจูุงูุงุช ููุฐู ุงูู
ูู
ุฉ.ููููุง ูู ูููู
ุจุชุญู
ูู ูุงุนุฏุฉ ุงูุจูุงูุงุช: ุจูุงุกู ุนูู ุงูุงุฎุชุจุงุฑ ุงูุฐู ุฃุฌุฑูุชู ุ ูู
ูู ูู MYSQL ูุจูู ุงูุทูุจ ุ ูููู ูุง ูู
ููู ู
ุนุงูุฌุชู ุนูู ุงูููุฑ. ูู
ูู ุฃู ูุคุฏู ุงูุงุฎุชูุงู ุญุชู 0.5 ุซุงููุฉ ุฅูู ุงูุชูููุฐ ุงูู
ุชูุฑุฑ - ููู ุฃู
ุฑ ุบูุฑ ู
ูุงุณุจ ุจุดูู ูุงุทุน.ุฃูุถูุง ูู ูุฐู ุงูุญุงูุฉ ุ ูุญู ูุชุญุฏุซ ููุท ุนู ุญุงูุฉ ุงูู
ูุงู
ุ ูุฐุง ู
ู ุงูุฃูุถู ุงุณุชุฎุฏุงู
ูุธุงู
ุงูู
ููุงุช ุงูุฎุงุต ุจุงูุฎุงุฏู
.ุชู
ุจูุงุก ูู
ูุฐุฌ ุงูุชุญูู ุงูุฃุณุงุณู ุจุงุณุชุฎุฏุงู
flock
- ูุธููุฉ ุชุญุฏุฏ ุงูู
ูู ูุชูุชุญู.ูู ุชูููุฐ PHP ุ ูู
ูู ุชู
ุซูู ุงููุธููุฉ ุนูู ุงููุญู ุงูุชุงูู:$lock_file_abs = 'file';
$fp = fopen($lock_file_abs,"w+");
if (flock($fp, LOCK_EX | LOCK_NB)) {
solve_one_task($one_task);
flock($fp, LOCK_UN);
}
else {
}
fclose($fp);
unlink($lock_file_abs);
ูุชูุฌุฉ
ุงูุนุฑุถ ุงูุนุงู
ููุฏูุฑุฉ ุจุฃูู
ููุง ูู
ุง ููู:for ($cycle = 1; $cycle <= 6; $cycle++) {
$all_tasks = get_all_tasks();
if ($all_tasks) {
foreach($all_tasks as $one_task) {
$lock_file_abs = __DIR__.'/locks/run_'.$one_task['id'];
$fp = fopen($lock_file_abs,"w+");
if (flock($fp, LOCK_EX | LOCK_NB)) {
solve_one_task($one_task);
flock($fp, LOCK_UN);
}
else {
}
fclose($fp);
unlink($lock_file_abs);
}
}
sleep(10);
}
ูุจุงูุชุงูู ุ ุชุณู
ุญ ูู ูุฐู ุงูุฎูุงุฑุฒู
ูุฉ ุจุจุฏุก ุชูููุฐ ุฏูุฑู ูู
ุนุงูุฌุฉ ุงูู
ูุงู
ููุง ุชููู ู
ู ุฃู ุงูู
ูู
ุฉ ุณุชุชู
ู
ุนุงูุฌุชูุง ุฃูุซุฑ ู
ู ู
ุฑุฉ.ูุงูุขู ูููู ุจุจุณุงุทุฉ ุชุดุบูู ูุฐุง ุงูุฑู
ุฒ ู
ู ุฎูุงู cron ูู ุฏูููุฉ ุ ูุจุฏูุฑู ุ ุณูุชู
ุชุดุบูู ุฏูุฑุงุช ุฃุตุบุฑ ุจุงููุนู ุฏุงุฎู ููุณู.