Недавно я затеял некоторую деятельность по созданию он-лайновой игрушки. Это из разряда хобби, и пока вообще речь не об этом. Возможно, я что то напишу об этом позже.
В отправной точке, при создании он-лайновой игрушки, я стоял перед скромным выбором — ни о каком персональном выделенном игровом сервере речи не шло, и я рассчитывал не выходить за рамки возможностей веб-сервера. Фактически, игра при этом не сильно отличается от такой разновидности веб-приложения как чат (chat). Единственно, что мне нужно было дополнительно — это принудительный периодический вызов скрипта для обсчета ряда игровых моментов (прогон очереди команд и расчеты связанные с функционированием баз).
У провайдера конечно же есть все что нужно, а нужен собственно только cron. А вот локально на машине (с os семейства ms windows), нужно было что то придумать.
Вариантов несколько, и каждый из них имеет своих, так скажем, приверженцев. О достоинствах спорить не буду.
- Настроить в windows планировщик задач. Для этого нужно, чтобы в службах был запущен сервис «Планировщик задач», а саму задачу можно поставить в Панели управления-> Назначенные задания
- Скачать какой нить бесплатный шедулер из инета. Я натолкнулся на nncron. Его прелесть в том, что он создаёт файлы задач в формате совместимом с unix-овым собратом.
- Написать что то самим, своими руками.
Я, честно говоря, посмотрел первые два варианта. Они мне понравились, я их опробовал, но почему то в итоге перешел к пункту 3. А той коротенькой поделкой, что у меня получилась в итоге, готов поделиться с вами.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<html> <body> <div id="tickOUT"></div> <script language="javascript"> <!-- var TimeOut = 5000; var intervalID = setInterval(function() { TimeOut -= 1000; if (TimeOut <= 0) { clearInterval(intervalID); document.location = document.location; } var z = document.getElementById("tickOUT"); z.innerHTML = 'waiting for ' + (TimeOut / 1000) + ' s. ...'; }, 1000); //--> </script> <div style="cursor: pointer;" onclick="clearInterval(intervalID);"> PRESS ME TO STOP <img style="display: none" src="http://URL_OF_YOUR_SCRIPT" /></div> </body> </html> |
Что сиё делает?
В переменной TimeOut можно установить период вызова скрипта расположенного по адресу http://URL_OF_YOUR_SCRIPT. Период выставляется в миллисекундах, т.е. в примере установлен интервал — 5 сек. Так же отображается посекундный обратный отсчет до окончания интервала. Если кликнуть на надпись PRESS ME TO STOP — можно остановить данный скрипт. Перезапуск — по F5.