2014-01-09 3 views
4

Я написал сценарий, в котором используются триггеры времени Google. Однако у меня возникают проблемы с тем, чтобы сценарий срабатывал в нужное время. Я живу в Сиднее (GMT + 10), и каждый день мне нужен сценарий для стрельбы в полдень.Установка часового пояса для триггеров с таймером

Я зашел и установил часовой пояс в настройках таблиц, Свойства проекта, а также глобальные параметры для Google Диска, но, несмотря на это, сценарий не срабатывает в нужное время. Это около 6-5 часов. Что еще более неприятно, когда я вхожу в панель администратора триггеров, часовой пояс указан как «Тихоокеанское время» (-8 часов), и, поскольку этого было недостаточно, каждый раз, когда я вхожу в систему, кажется, что он скоро изменится в какое-то другое случайное время, стандартный и т. д. (в панели триггеров).

Я даже попытался вручную компенсировать разницу во времени, но это тоже не сработало, и это идеальный путь, который я хочу спуститься, поскольку он влияет на день запуска сценария (это будет понедельник в EST время и вторник здесь, в Сиднее), который влияет на запрос БД, который я запускаю, который чувствителен к дате.

В любом случае, я сейчас нарисовал пробел, не могу придумать никаких дальнейших решений. Как я могу это ответить?

+1

как подсказка, попробуйте записать что-нибудь, выполнив скрипт вручную и проверьте, какой часовой пояс вы получаете в журналах. Если он отличается от проекта сценария приложений и настройки часового пояса таблицы, значит, что-то не так. Попробуйте удалить триггеры, а затем добавьте снова, выполнив настройку требуемого часового пояса. –

+0

Вам нужно фактически показать нам соответствующие части вашего сценария, если вы хотите помочь. Кроме того, Сидней не является чисто +10. Иногда это +11. Это зависит от того, действует ли летнее время или нет. Подробнее см. В [wikipedia] (http://en.wikipedia.org/wiki/Time_in_Australia). –

ответ

0

Я был пойман разницей в часовом поясе раньше, поэтому я потратил немного времени на размышления об этом, но иногда у меня болит голова!

Посмотрите на один из моих триггеров: моя учетная запись Google и электронная таблица установлены в лондонское время (GMT + 0), и у меня есть триггеры, установленные для ежедневного выхода в 4 часа по Гринвичу, поэтому, смотря на среду (8 января) : согласно истории изменений в электронной таблице, последние триггеры ушли в 8 вечера по тихоокеанскому времени (GMT-8) во вторник (7 января). Что связывает их с ними, как и ожидалось в 4 часа по Гринвичу 8-го числа (и в моем случае поиск событий календаря для восьмого, поскольку они хранятся в GMT/UTC).

Если у вас установлено время работы электронной таблицы в Сиднее (GMT + 10), триггеры должны уходить в указанное вами местное время.

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

Не чувствуйте, что я дал вам много, но надеюсь, что это поможет.

2

добавления вручную триггер не установлен правильный часовой пояс, но добавив его с помощью кода делает работу:

  1. Установите соответствующий часовой пояс для сценария в меню Файл> Свойства проекта> Time Zone.
  2. Add the trigger programmatically:
function addTrigger() { 
    // main() will be called every day at 7am in your selected time zone 
    var everyDay = ScriptApp.newTrigger("main") 
     .timeBased() 
     .everyDays(1) 
     .atHour(7) 
     .create(); 
} 

Вы должны увидеть правильный часовой пояс на "Триггеры текущего проекта" вид.

2

У меня была эта проблема. Возможно, потому, что я путешествовал. Установка часового пояса электронной таблицы не помогла. Установка часового пояса скрипта тоже не помогла.

Что помощь использует модифицированную версию @ сценария Родриго:

function addTrigger() { 
    // main() will be called weekly on Monday at 16:00 in the specified time zone 
    var everyWeek = ScriptApp.newTrigger("main") 
     .timeBased() 
     .everyWeeks(1) 
     .onWeekDay(ScriptApp.WeekDay.MONDAY) 
     .inTimezone("America/Los_Angeles") 
     .atHour(16) 
     .create(); 
} 

Вы можете указать часовой пояс с помощью .inTimezone() - смотрите описание here.

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

+0

и здесь список часового пояса https://en.wikipedia.org/wiki/List_of_tz_database_time_zones – Harold

Смежные вопросы