планировщик, случайное к-во

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
239
Баллы
43
не хватает вот там http://prntscr.com/93xh6j
возможности указывать рандом от-до

но не помешало бы не только там, а и во всех других возможных полях
 
  • Спасибо
Реакции: sof и Sergodjan

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 415
Благодарностей
9 119
Баллы
113
не хватает вот там http://prntscr.com/93xh6j
возможности указывать рандом от-до

но не помешало бы не только там, а и во всех других возможных полях
люто плюсую..
сам как то писал об этом..
и надо именно во всех возможных полях такую рандомизацию..
 
  • Спасибо
Реакции: rotkiv и Bot_Sculptor

sof

Client
Регистрация
15.04.2013
Сообщения
831
Благодарностей
185
Баллы
43
Да, такая фича пригодилась бы однозначно. Вообще считаю что планировщик нужно сделать максимально гибким
 

Nick

Client
Регистрация
22.07.2014
Сообщения
1 983
Благодарностей
817
Баллы
113
максимально гибким? пусть он сначала просто нормально работать начнёт...
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
максимально гибким? пусть он сначала просто нормально работать начнёт...
он работает нормально в рамках своих текущих функций.
по планировщику изменения планируются
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
Еще в тройке был планировщик, который был гораздо круче нынешнего, на нём можно было много чего накрутить, тут же всё по линеечке получается..
 
  • Спасибо
Реакции: lokiys, sof и Sergodjan

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 415
Благодарностей
9 119
Баллы
113
Еще в тройке был планировщик, который был гораздо круче нынешнего, на нём можно было много чего накрутить, тут же всё по линеечке получается..
3-ю версию к сожалению не видел, но соглашусь, что текущие возможности оч. скудны..
интересно, зачем усекли трешечные возможности в этом плане?
(риторический вопрос)
 
  • Спасибо
Реакции: sof

zennoX

Client
Регистрация
05.04.2014
Сообщения
484
Благодарностей
134
Баллы
43
он работает нормально в рамках своих текущих функций.
по планировщику изменения планируются
не забудьте пожалуйста сделать, чтобы можно было указывать диапазоны, например
диапазон часов: запускать раз в N минут в диапазоне времени с 8 до 23 ч (т.е. ночью спать и не запускать)
диапазон дней недели: запускать раз в N минут только по средам и пятницам (чекбоксы)

что то вроде этого


 
Последнее редактирование:

Client100500

Client
Регистрация
16.09.2015
Сообщения
35
Благодарностей
7
Баллы
8
Написал уже два разных "планировщика" внутри проекта используя немного c# и логики в таблице из которых берутся данные, когда прога должна работать. Пишется довольно легко и просто.

1. Проверяется дата примерно с помощью такого кода(взято откуда-то отсюда с форума)
Код:
var rowDate = project.Variables["post_time"].Value;
//rowDate = "26.10.2015  2:51:00"; // Для проверки
System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("ru-RU");
DateTime date = DateTime.Parse(rowDate, culture);

var date2 = DateTime.Now; // Текущее время
TimeSpan span = date - date2;
double mins = span.TotalMinutes; // Разница во времени

return Math.Round(mins, 0);
Потом идет проверка. Разница с текущим временем в минутах (> 5 например) если "да" то в путь, если нет - берем следующую строку и цикл.

2. Тоже самое можно разбить на дни недели и сверять часы работы(минуты, если хотите)
Код:
int day = ((int)DateTime.Now.DayOfWeek == 0) ? 7 : (int)DateTime.Now.DayOfWeek;
String week_day = project.Variables["post_time_day_" + day.ToString()].Value;

return week_day;
Из кода понятно что у нас в таблице есть 7 столбцов дней и внутри время работы через запятые, которое пишется в список. И дальше логика почти та же что и в первом случае.


Если вам нужно случайное количество запусков(выполнений проекта после проверки времени) в час, сделайте что-то типо рандомных проверок времени. Разбейте все на интервалы и считайте количество выполненных раз. И выполняйте проект N раз в 15 минут, но не больше M раз.


Я понимаю, что в данном подходе есть недостатки, но он целиком компенсирует мои потребности.

ps: в рамках программы при доступе к c# можно реализовать практически любую логику.
 
Последнее редактирование:

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
я делал на форме, проверка миллисекундная и нинадо в проекте лепить через каждый экшен проверку, плюс WinApi можно приделать и процессы просматривать, по идеи если вынести на форму то можно вообще крутое расписание под себя сделать
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
Написал уже два разных "планировщика" внутри проекта используя немного c# и логики в таблице из которых берутся данные, когда прога должна работать. Пишется довольно легко и просто.

1. Проверяется дата примерно с помощью такого кода(взято откуда-то отсюда с форума)
Код:
var rowDate = project.Variables["post_time"].Value;
//rowDate = "26.10.2015  2:51:00"; // Для проверки
System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("ru-RU");
DateTime date = DateTime.Parse(rowDate, culture);

var date2 = DateTime.Now; // Текущее время
TimeSpan span = date - date2;
double mins = span.TotalMinutes; // Разница во времени

return Math.Round(mins, 0);
Потом идет проверка. Разница с текущим временем в минутах (> 5 например) если "да" то в путь, если нет - берем следующую строку и цикл.

2. Тоже самое можно разбить на дни недели и сверять часы работы(минуты, если хотите)
Код:
int day = ((int)DateTime.Now.DayOfWeek == 0) ? 7 : (int)DateTime.Now.DayOfWeek;
String week_day = project.Variables["post_time_day_" + day.ToString()].Value;

return week_day;
Из кода понятно что у нас в таблице есть 7 столбцов дней и внутри время работы через запятые, которое пишется в список. И дальше логика почти та же что и в первом случае.


Если вам нужно случайное количество запусков(выполнений проекта после проверки времени) в час, сделайте что-то типо рандомных проверок времени. Разбейте все на интервалы и считайте количество выполненных раз. И выполняйте проект N раз в 15 минут, но не больше M раз.


Я понимаю, что в данном подходе есть недостатки, но он целиком компенсирует мои потребности.

ps: в рамках программы при доступе к c# можно реализовать практически любую логику.
Это понятно, что костылями можно сделать всё, что угодно. Даже безногие ходят благодаря ним.
Но тут есть проблема - при таком подходе должен поток работать постоянно, т.е., если у Вас лайт, то этот 1 поток должен постоянно мониторить, а если есть другие задачи? С таким подходом минимализируется количественный параметр запусков.
При правильной же настройке планировщика внутри программы, она сама в нужное время запускает нужные шаблоны, а в остальное время потоки свободны и выполняют свои задачи.
 
  • Спасибо
Реакции: zennoX

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
invoke и мониторится всё что хочешь
 

Narcanes

Client
Регистрация
14.02.2012
Сообщения
18
Благодарностей
6
Баллы
3
zenno1 (2).png
Здравствуйте. Возможно не в ту тему пишу, заранее прошу прощения. Объясните мне, пожалуйста, как запустить проект например в 2 часа ночи и что-бы он сделался 20 раз и после этого прекратилось выполнение? Запустил проект (раза с 3го наверное обычно висит в запланированных) но проект не выполняется, пришлось перейти во вкладку "настройки" поставить вместо одного потока два, и он "заработал". В какие окна какие даты там ставить? Или дайте ссылку где написано подробное описание каждого пункта в расписании. Большое всем спасибо.
 

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113
Я за то, чтобы планировщик вообще выкинуть. И вместо него сделать дополнительные функции для шаблонов. Далее возможны варианты:
  1. Сейчас в шаблоне есть шаги: START, GOOD END, BAD END, можно добавить шаг SCHEDULE - и там записывать логику расписания
  2. Второй вариант - использовать отдельный тип проектов под названием "расписание", и там в ProjectMaker составлять расписания по каким угодно правилам, можно там хоть триггеры писать (например такие как "запустить проект, если удалённый сайт перестал пинговаться"), управлять там потоками и делать прочие радости
В общем идея такова чтобы задействовать привычные все удобства ProjectMaker в качестве инструмента расписания. Ведь как писать проекты - всем хорошо известно, все удобства и функциональные мощности на руках. И иметь возможность составить расписание по своим правилам - это очень ценно.

Например могут быть люди, которые могут к примеру постоянно рефрешить вкладку в браузере и если там что-то появилось/исчезло - им необходимо стартовать проект. Или например кто-то может ждать поступления "контрольного" письма на мыло, или на FTP ждать появления файла, чтобы стартануть шаблон. Это можно и сейчас делать. Но нет сейчас достаточно удобных шагов для ProjectMaker, приходится из C# городить много кода.

Какие могут быть экшены специально для расписания? Например такие:
  • Управление потоками (уменьшить|увеличить|установить количество)
  • Управление ходом шаблона (старт|остановка|пауза|прервать)
  • Удобный доступ ко времени (диапазон времени|создание повторяющихся интервалов времени)
  • Связки совместных шаблонов (переход "многопоток=>однопоток|переход "однопоток=>многопоток"|одновременное выполнение|последовательное выполнение)
  • Управление совместными данными шаблонов (общий доступ к спискам в пределах группы шаблонов)
  • и другое
 
  • Спасибо
Реакции: iBotovod и zortexx

zennoX

Client
Регистрация
05.04.2014
Сообщения
484
Благодарностей
134
Баллы
43
Посмотреть вложение 10300
Здравствуйте. Возможно не в ту тему пишу, заранее прошу прощения. Объясните мне, пожалуйста, как запустить проект например в 2 часа ночи и что-бы он сделался 20 раз и после этого прекратилось выполнение? Запустил проект (раза с 3го наверное обычно висит в запланированных) но проект не выполняется, пришлось перейти во вкладку "настройки" поставить вместо одного потока два, и он "заработал". В какие окна какие даты там ставить? Или дайте ссылку где написано подробное описание каждого пункта в расписании. Большое всем спасибо.

или
 

zennoX

Client
Регистрация
05.04.2014
Сообщения
484
Благодарностей
134
Баллы
43
На вашем скрине проект просто не успел запуститься,

Если каждый день в 2 часа 20 выполнений надо, то вот так:
 

Narcanes

Client
Регистрация
14.02.2012
Сообщения
18
Благодарностей
6
Баллы
3
Большое спасибо. Мне кажется или планировщик срабатывает только в "ново-добавленный" проект? тот проект что остановлен- он по планировщику не запустится?
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
Большое спасибо. Мне кажется или планировщик срабатывает только в "ново-добавленный" проект? тот проект что остановлен- он по планировщику не запустится?
Естественно, что если Вы прервали выполнение шаблона, он сам не запустится. Для того, что бы планировщик сработал, необходимо запустить шаблон и установить ему количество выполнений 0. Тогда всё будет работать как положено.
 

zennoX

Client
Регистрация
05.04.2014
Сообщения
484
Благодарностей
134
Баллы
43
Большое спасибо. Мне кажется или планировщик срабатывает только в "ново-добавленный" проект? тот проект что остановлен- он по планировщику не запустится?
если он на стопе (т.е. напротив него красный квадрат), то конечно не запустится,
выделите проект и нажмите плей (если планирувщик активирован, то значок напротив проекта будет в виде календарика), без попыток он не запустится, а планировщик будет добавлять ему попыток.
 

Narcanes

Client
Регистрация
14.02.2012
Сообщения
18
Благодарностей
6
Баллы
3
Большое всем Вам спасибо. Вроде разобрался.
 

mrstorm

Client
Регистрация
16.04.2015
Сообщения
205
Благодарностей
14
Баллы
18
способа случайного запуска проекта так и не появилось? Только через определенный интервал времени возможно делать?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
способа случайного запуска проекта так и не появилось? Только через определенный интервал времени возможно делать?
Случайного запуска? Можно сделать батник для запуска основного шаблона, и сделать к нему шаблон для запуска, в котором вы пропишите логику по которой этот батник будет дергаться.
 

ermax

Client
Регистрация
06.10.2012
Сообщения
142
Благодарностей
51
Баллы
28
Два года прошло а просьбу топик стартера так и не выполнили.
неужели трудно добавить пару строчек кода ?

Фича то нужная, а то так ботов палят, к примеру каждые 20 минут добавляется 100 заданий, это легко отследить, к примеру если бот накручивает что то.
Поэтому случайное кол-во заданий, в виде n1-n2, нужна как воздух
 

Nick

Client
Регистрация
22.07.2014
Сообщения
1 983
Благодарностей
817
Баллы
113
Два года прошло а просьбу топик стартера так и не выполнили.
неужели трудно добавить пару строчек кода ?

Фича то нужная, а то так ботов палят, к примеру каждые 20 минут добавляется 100 заданий, это легко отследить, к примеру если бот накручивает что то.
Поэтому случайное кол-во заданий, в виде n1-n2, нужна как воздух
Они стараются делать то, что вы не можете реализовать сами. А вам ничто не мешает прямо в шаблоне в начале бросить кубик и с нужной вероятностью прекратить работу шаблона. Вот вам и вариабельность в нужном диапазоне. А в планировщике вы уже устанавливаете множитель.
 

inilim

Client
Регистрация
16.09.2017
Сообщения
446
Благодарностей
170
Баллы
43
Регистрация
12.07.2014
Сообщения
916
Благодарностей
373
Баллы
63
Надо нормальный планировщик..
 

rotkiv

Client
Регистрация
27.04.2015
Сообщения
35
Благодарностей
3
Баллы
8

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Создайте управляющий шаблон, который будет в заданное время добавлять случайное количество попыток для нужного шаблона.
 

rotkiv

Client
Регистрация
27.04.2015
Сообщения
35
Благодарностей
3
Баллы
8
Создайте управляющий шаблон, который будет в заданное время добавлять случайное количество попыток для нужного шаблона.
Тут речь не о случайное количество попыток а о времени. К примеру мне нужно запускать шаблон не каждую 1 мин или 5 мин а рандомное от 1 до 20 минут. И так же по дате делать к примеру понедельник рандомное с 15,00 до 20,00 и рандомное количество раз.. Ну и так далее. Как выше было написано надо именно во всех возможных полях такую рандомизацию..
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Тут речь не о случайное количество попыток а о времени. К примеру мне нужно запускать шаблон не каждую 1 мин или 5 мин а рандомное от 1 до 20 минут. И так же по дате делать к примеру понедельник рандомное с 15,00 до 20,00 и рандомное количество раз.. Ну и так далее. Как выше было написано надо именно во всех возможных полях такую рандомизацию..
И в чем проблема запуска управляющего шаблона в требуемое время?
Который уже сам выставит какое угодно количество исполнений.

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

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)