Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

расчет времени и выдача 'time_left' в FileClient, рефакторинг #318

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

Pro100AlexHell
Copy link

No description provided.

@tongohiti
Copy link
Contributor

Продолжение (и, надеюсь, окончание) истории, начатой в #265

Смысл в том, чтобы добавить параметр time_left в сообщения, чтобы стратегия знала, сколько времени по мнению сервера ей осталось на выполнение. Предыдущий PR делал это только для серверного кода, оставив Local Runner за бортом. Данный PR исправляет это, обобщив логику подсчёта времени для TcpClient и FileClient, чтобы всё работало единообразно и на сервере и в LR.

@alex3d
Copy link
Contributor

alex3d commented Aug 2, 2019

С этими изменениями стратегия запущенная под отладчиком начнет получать таймауты (если задуматься в отладчике)

@Pro100AlexHell
Copy link
Author

Pro100AlexHell commented Aug 2, 2019

В оригинале с этим флагом:

parser.add_argument('-t', '--timeout', type=str, nargs='?', help='off/on timeout', default='on')

видимо его же надо приспособить в тайм-аут, или другой флаг
но название конечно классное "--timeout" а по факту это тики считает
и если я сделаю "--time_limit" то это тоже про тики будто бы будет :)

потом проверка флага и самого тайм-аута

 def game_loop_wrapper(dt):
         is_game_over = loop.run_until_complete(Runner.game.game_loop())
         if is_game_over or (args.timeout == 'on' and Runner.game.tick >= MAX_TICK_COUNT):

доделать могу на случай запуска под отладчиком - придется задавать этот флаг в пути к localrunner.py и будет проверяться и у меня в FileClient тоже


P.S. вообщем решил добавить флаг
parser.add_argument('--ai-timeout', type=str, nargs='?', help='off/on AI execution time limit', default='off')
т.е. начальное значение = "БЕЗ ПРОВЕРКИ ТАЙМ_АУТА ДЛЯ AI" чтобы для всех под отладчиком работало без тайм-аута, чтобы для большинства не пришлось лезть в параметры и чето менять,

и только кто захочет валидировать тайминги-бота - пусть задает localrunner.py флаг
'--ai-timeout=on' и у него будет тайминг вычитаться

@xammi
Copy link
Contributor

xammi commented Aug 9, 2019

Время MAX_EXECUTION_TIME придумано, чтобы подсчитать вычислительные ресурсы необходимые для проведения AiCups. По идее оно не должно кому-либо мешать. Если у большинства стратегии начинают упираться в эти ограничения, то мы найдём способ их увеличить.

@xammi xammi added the wontfix This will not be worked on label Aug 9, 2019
@Pro100AlexHell
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
wontfix This will not be worked on
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants