Последний раз в Казани когда выписывали штраф, протокол заполняли на каком то небольшом устройстве, похожем на кассовый аппарат) все происходит быстро — вводятся данные прав нарушителя, авто и нарушение. распечатывается квиток на котором расписывается сотрудник и ты. я так понял что устройство синхронизировано с общей базой водителей и транспортных средств. нарушаю редко, поэтому не видел больше таких устройств
Главное не сломайте существующий функционал! дизайн не так важен.
В текущей версии какой то странный баг с подвисанием приложения после перевода на мобильный. появляется сообщение о том что платеж прошел и приложение перестает реагировать. проявляется не всегда и не очень критично.
а из пожеланий: выводить список последних операций в читаемом виде, т.к. не всегда понятно за что и где была оплата.
Спасибо. Уже лучше. Но я имел ввиду немного другое.
При запуске скрипта нужно где-нибудь сделать отметку о том что процесс запущен: в базу или файл записываем pid процесса (получить можно так getmypid()). По окончании всех действий удаляем запись с нашим pid (в случае демона этого делать не надо, ведь мы считаем, что этот процесс всегда должен быть запущен).
При новом запуске скрипта, например по крону, смотрим в базу/файл на наличие записи о запущенном процессе. Если записи нет, то тогда спокойно запускаемся. Если же запись есть, то нужно проверить, действительно ли такой процесс запущен. Это можно сделать так: (bool) posix_getsid($pid); Ну и дальше действовать по ситуации.
Еще будет хорошо если рядом с отметкой о запуске с pid процесса будет timestamp запуска. Его можно использовать для разных целей. Например, убивать процесс, который длится больше недели. Так, на всякий случай, для борьбы с утечками и подвисаниями.
Минус этого способа наличие ничтожно малой вероятность неуникальности pid. Т.е. процесс завершился аварийно, не успев удалить отметку о запуске. А какому-то другому процессу присвоен этот самый pid. В итоге мы посылаем kill другому ни в чем неповинному процессу… Хотя по-моему этим же грешит и Ваш код. Как выход вместо posix_getsid() использовать exec('ps'); с дополнительными параметрами и смотреть не только pid, но еще и имя запущенного процесса.
Отписывайте в личку, если нужна помощь по доработке кода.
Не вздумайте пользоваться этим кодом, здесь проверка работы демона осуществляется по существованию файла. Если сервер перезагрузился, процесс аварийно завершился, упал php или еще один из миллиона вариантов катастроф, но при этом файл не был удален, то просто напросто новая копия демона не запуститься. это не теория, сам сталкивался с этим.
Автор, перепиши проверку работы демона на posix функции.а до этого лучше скрой статью.
наличкой вернут если вы оплачивайте электронными деньгами- вебманями, яденьгами, киви и прочее. если покупать через сайт ржд, то только на карточку. увы, сам с этим столкнулся опоздав на поезд в чужом городе, без наличных в кармане.
не могу сказать про двух человек +- 50 кг, но в самой EasyWakeUp написано, что она отлично справляется с такой ситуацией, достаточно положить телефон на «свою» сторону кровати. Не знаю насколько это правда, но думаю что в ситуации с домашним животным такой будильник точно бесполезен =) он будет будить тогда, когда это нужно вашему псу.
Предполагается, что между фазами сна человек двигается в постели: переворачивается, ворочается и.т.д. В этот момент и срабатывает будильник. Подтверждаю, действительно работает. Иногда просыпаешься с чувством, что уже не спишь, потому что помнишь начало звонка будильника.
Только после тяжелого дня сон обычно крепкий настолько, что не двигаешься вообще, и тогда такой будильник не эффективен.
В текущей версии какой то странный баг с подвисанием приложения после перевода на мобильный. появляется сообщение о том что платеж прошел и приложение перестает реагировать. проявляется не всегда и не очень критично.
а из пожеланий: выводить список последних операций в читаемом виде, т.к. не всегда понятно за что и где была оплата.
На один символ длиннее получается
При запуске скрипта нужно где-нибудь сделать отметку о том что процесс запущен: в базу или файл записываем pid процесса (получить можно так
getmypid()
). По окончании всех действий удаляем запись с нашим pid (в случае демона этого делать не надо, ведь мы считаем, что этот процесс всегда должен быть запущен).При новом запуске скрипта, например по крону, смотрим в базу/файл на наличие записи о запущенном процессе. Если записи нет, то тогда спокойно запускаемся. Если же запись есть, то нужно проверить, действительно ли такой процесс запущен. Это можно сделать так:
(bool) posix_getsid($pid);
Ну и дальше действовать по ситуации.Еще будет хорошо если рядом с отметкой о запуске с pid процесса будет timestamp запуска. Его можно использовать для разных целей. Например, убивать процесс, который длится больше недели. Так, на всякий случай, для борьбы с утечками и подвисаниями.
Минус этого способа наличие ничтожно малой вероятность неуникальности pid. Т.е. процесс завершился аварийно, не успев удалить отметку о запуске. А какому-то другому процессу присвоен этот самый pid. В итоге мы посылаем kill другому ни в чем неповинному процессу… Хотя по-моему этим же грешит и Ваш код. Как выход вместо
posix_getsid()
использоватьexec('ps');
с дополнительными параметрами и смотреть не только pid, но еще и имя запущенного процесса.Отписывайте в личку, если нужна помощь по доработке кода.
Автор, перепиши проверку работы демона на posix функции.а до этого лучше скрой статью.
Только после тяжелого дня сон обычно крепкий настолько, что не двигаешься вообще, и тогда такой будильник не эффективен.
он главный источник новостей об ит-парке в казани