Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Запросы скриптов для PtokaX _ Перезапуск скрипта раз в минуту

Автор: lankmv 12.11.2010, 0:06

Как реализовать перезапуск определенного скрипта раз в минуту?

Может быть поможете простеньким скриптом?

Автор: dimajak 12.11.2010, 0:21

Код
Count = 0
AllCount = 5
Period = 60000

OnStartup = function()
    TmrMan.AddTimer(Period)
end

OnTimer = function(Id)
    Count = Count + 1
    Core.SendToAll("Я таймер, сработал "..Count.." раз")
    if Count >= AllCount then
        TmrMan.RemoveTimer(Id)
    end
end

как-то так

Автор: Ksan 12.11.2010, 0:45

lankmv, вот я чуток переделал скриптик http://mydc.ru/topic3574.html:

Код
local sName = "Название_другого_скрипта.lua"    -- имя скрипта с которым работаем
local iTime = 1 -- период переключений в минутах

function OnStartup()
    local found
    for _, tData in ipairs(ScriptMan.GetScripts()) do
        if tData.sName == sName then
            found = true
            if tData.bEnabled then
                state = true
            end
            break
        end
    end
    assert(found,"Скрипт \""..sName.."\" найден не был! Проверьте правильность настройки.")
    TmrMan.AddTimer(iTime*60000, "StartStop")
end

function StartStop()
    if not state then
        ScriptMan.StartScript(sName)
        state = true
    elseif state then
        ScriptMan.StopScript(sName)
        state = false
    end
end

Проверено, мин нет! ©
Можешь скрипт назвать родным названием ScriptTimer.lua

Автор: lankmv 12.11.2010, 10:32

Ksan благодарю. Теперь скрипт работающий с полем описания юзера работает как надо big_smile.gif

Автор: Ksan 12.11.2010, 12:55

lankmv, хмм, может, тебе следовало сразу сказать, в чём дело и для чего этот скрипт нужен был?
Тогда бы тебе подсказали, как обойтись без дополнительного скрипта. big_smile.gif
Можно было просто организовать по кратковременному таймеру (500-1000 мс) отправку MyINFO юзерам (если проблема состоит в этом)

Автор: HackFresse 12.11.2010, 13:49

на малых хабах оно можно, конечно, слать всем или почти всем юзерам что-то очень часто, а вот на больших, думаю, будет просто бесполезное расходование канала доступа в инет..
я к тому, что нужно сначала продумать всю схему работы скрипта, и скрипт этот максимально оптимизировать, вместо добавления внешних костылей (отдельный скрипт для перезапуска нужного, хотя внутри нужного скрипта простенький таймер внедрить можно)

Автор: lankmv 12.11.2010, 16:42

Ksan, я игрался с этой цифрой, при любых значениях, даже больших она не решает проблему, если клиенты начинают часто одновременно заходить на хаб по какой то причине некоторые из них висят со своим полем описания а не с тем который отправляет скрипт - пользователь сети название города / пользователь внешки.

(и скрипт этих пользователей обрабатывает только если его перезапустить / или заставить пользователя перезайти)

периодический перезапуск скрипта раз в 1-10 минут оказался единственным вариантом решения моей проблемы.

Автор: DEN 007 13.11.2010, 3:11

это тип крон для хаба?)))