0 / 0 / 0
Регистрация: 12.04.2011
Сообщений: 287
|
|
1 | |
Выполнение срипта в определенное время.25.04.2012, 11:21. Показов 2124. Ответов 12
Метки нет (Все метки)
Доброе утро.
Есть задача : Нужно зашелдурить такую процедуру - есть скрипт (ASP+JS), скорее даже пару функций, которые выполняют синхронизацию одной БД с другой. Их нужно запускать каждый день. Что посоветуете для реализации этой цели ? В какую сторону смотреть ? Может есть смысл использовать nnCron ? Была идея простого запуска по рассписанию строки типа : iexplore synch.asp. Но, нужно оуна закрывать - после синхронизации. Ставить таймер или что-то еще ... Нужны Ваши советы господа гуру.
0
|
25.04.2012, 11:21 | |
Ответы с готовыми решениями:
12
Отсчитывать определенное время с момента захода посетителя на сайт Выполнение задания в определенное время Выполнение батника в определенное время Выполнение задачи в определенное время |
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
|
|
25.04.2012, 11:56 | 2 |
ASP страницы запускать по расписанию не очень надежно из-за наличия тайаута на выполнение скрипта. Лучше взять код из ASP файла, положить его в файл с расширением js (для JavaScript) или vbs (для VBScript) и запускать команду cscript имя_файла используя стандартный Task Scheduler. Я обычно создаю bat файл примерно такого содержания
@echo off cscript имя_файла //nologo и уже добавляю в список scheduled tasks. Так проще в будущем вносить изменения.
0
|
0 / 0 / 0
Регистрация: 12.04.2011
Сообщений: 287
|
|
26.04.2012, 06:39 [ТС] | 3 |
Хм ... Василий, там основную работу выполняет ASP. JS там совсем мало ...
Как же перевести в JS, скажем вот это : Код
<% function admsynchronizeitems() sqlqb = "....." sqlms = "....." rec.PageSize = 10 rec2.PageSize = 10 rec.CursorType=1 rec2.CursorType=1 rec.CursorLocation=3 rec2.CursorLocation=3 rec.Open sqlqb,conn,3,3,1 rec2.Open sqlms,conn2,3,3,1 If rec.PageCount=0 Then Response.Write "...." If rec2.PageCount=0 Then Response.Write "..." Do While Not rec.EOF rec2.MoveFirst rec2.Find "ListID='"&rec("ListID").value&"'" If(rec2.BOF or rec2.EOF) Then If Trim(rec("IsActive").value) Then bol="1" Else bol="0" End If If IsNull(rec("FullName").value) Then fullname="" Else fullname = rec("FullName").value End If ...... sql="INSERT INTO ...." conn2.Execute(sql) Else ..... sql="UPDATE ...." conn2.Execute(sql) End If .......... end function %>
0
|
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
|
|
26.04.2012, 10:20 | 4 |
1. Убираем %>, <%
2. Заменяем Response.Write на WScript.Echo для вывода в окно, либо на вывод в лог файл посредством fso Все остальное вполне будет функционировать как есть. Да, еще одно, если используется Server.CreateObject, заменяем на CreateObject.
0
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
|
|
26.04.2012, 10:20 | 5 |
В данном пример достаточно заменить Response.Write на WScript.Echo и все. Если где-то еще встречается вызов Server.CreateObject, то замени его WScript.CreateObject.
В состав Windows входит компонент под названием Windows Script Host. Это комонент включает в себя движки VBScript и JScript, которые затем используются MSIE, IIS/ASP и для выполнения скриптов из командной строки. То есть во всех этих программаъх используется один и тот же движок, отличается только контекст исполнения. К примеру, ASP скриптам доступны объекты Request, Response, Session, которые не будут работать в консольном скрипте. Но обычно им можно найти замену. Далее. Большая часть возможностей VBScript/JScript реализуется внешними объектами - например, ADO. Эти объекты не привязаны к какой-то конкретной технологии. Скажем, ASP. Они универсальные. Соответственно у тебя не будет никаких проблем с их использованием.
0
|
0 / 0 / 0
Регистрация: 12.04.2011
Сообщений: 287
|
|
29.04.2012, 17:35 [ТС] | 6 |
Пасиб.
Про WSH знал, но особо его не юзал. А вот про то что WSH включает в себя движки VBS и Js - не знал. Есть ли русскоязычные ссылки про WSH, которые по Вашему мнению достойны изучению ? Если таковых не имеется, можно и на english`е. Хотелось бы изучить WSH - раз он такой полезный. Спасибо.
0
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
|
|
29.04.2012, 17:55 | 7 |
Я всегда MSDN использовал - http://msdn.microsoft.com/libr... frame=true
0
|
0 / 0 / 0
Регистрация: 12.04.2011
Сообщений: 287
|
|
01.05.2012, 04:48 [ТС] | 8 |
Доброго дня.
Очень мне нравятся твои ответы Василий. Спасибо.
0
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
|
|
01.05.2012, 11:07 | 9 |
Пожалуйста
0
|
0 / 0 / 0
Регистрация: 12.04.2011
Сообщений: 287
|
|
01.05.2012, 12:13 [ТС] | 10 |
Hi bazile,
>К примеру, ASP скриптам доступны объекты Request, Response, Session, которые не >будут работать в консольном скрипте. Но обычно им можно найти замену. >Далее. Большая часть возможностей VBScript/JScript реализуется внешними >объектами - например, ADO. Эти объекты не привязаны к какой-то конкретной >технологии. Скажем, ASP. Они универсальные. Соответственно у тебя не будет >никаких проблем с их использованием. Можно подробнее с этого места - хотя на моем примере. Что-то я покопалсяв msdn и ничего там нормального не нашел ... Спасибо.
0
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
|
|
01.05.2012, 12:20 | 11 |
1. Создаешь файл test.js
2. Копируешь в него текст из ASP файла. 3. Удаляешь весь html код, оставляя только блоки внутри <% %>. (Сами маркеры <% %> тоже не нужны) 4. Заменяшь Response.Write на WScript.Echo, Server.CreateObject на WScript.CreateObject 5. Запускаешь полученный файл из командной строки cscript test.js
0
|
85 / 61 / 69
Регистрация: 15.03.2007
Сообщений: 6,906
|
|
01.05.2012, 13:27 | 12 |
Ошибся немного. Не js файл, а vbs. У тебя же код на VBScript.
0
|
0 / 0 / 0
Регистрация: 12.04.2011
Сообщений: 287
|
|
01.05.2012, 19:03 [ТС] | 13 |
Ок. Спасибо. Буду пробовать. Думал все будет сложнее.
0
|
01.05.2012, 19:03 | |
01.05.2012, 19:03 | |
Помогаю со студенческими работами здесь
13
Выполнение функции в определенное системное время Выполнение PHP скрипта в определенное время Выполнение действий по расписанию, в определенное время Выполнение метода в определенное время суток Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |