
Vadim
06.11.2016
20:11:29
Я не могу предложить пример в вебе, где меня бы не устроила задержка в 200мс.

Korolll
06.11.2016
20:12:19

Zart
06.11.2016
20:12:53
зато когда отследишь - хочется взять и уебать 8(

Korolll
06.11.2016
20:14:17

Google

Vadim
06.11.2016
20:14:34
Аргумент…

Korolll
06.11.2016
20:15:44
В общем закрываем тему с real-time, не у кого мыслей больше нет?

@#*!
06.11.2016
20:59:16
1000 = congratz

b0g3r
06.11.2016
21:00:06
уже не один раз

V
06.11.2016
21:08:23
забавно, выходит фраза "каждый тысячный пользователь чата" имеет второй смысл )

Zart
06.11.2016
21:09:05
— третьим буду?
— пятым. четверых мы уже послали

V
06.11.2016
21:09:22
точно

Louis
06.11.2016
21:09:29
Как установить 4 питон?

Zart
06.11.2016
21:10:09
садишься в машину. набираешь 88 миль в час...

V
06.11.2016
21:10:51

Arseniy
06.11.2016
21:13:08
приветствую! подскажите плиз, чем в винде заменить двойной форк?

Louis
06.11.2016
21:13:11
а если серьезно?

V
06.11.2016
21:15:06
да, я тут давеча спрашивал, как лучше функции запускать через равные промежутки времени каждую в своем потоке и меня тут почти уговорили заюзать для этого селери. я пока что-то не решился да и реально случай не подходящий огород городить, в связи с этим выродил такой вот класс для этого дела:
class PollThread(Thread):
def __init__(self, function, interval, group=None, target=None, name=None, *args, **kwargs):
super().__init__(group=group, target=target, name=name)
self.function = function
self.interval = interval
self.args = args
self.kwargs = kwargs
self.ok_to_run = True
self.last_run = None
def run(self):
self.ok_to_run = True
while self.ok_to_run:
self.last_run = time()
self.function(*self.args, **self.kwargs)
next_run = self.last_run + self.interval
if time() < next_run:
sleep(next_run - time())
def stop(self):
self.ok_to_run = False

Google

Arseniy
06.11.2016
21:15:15
нужно "открепление от консоли", родительский процесс сразу завершать а действия производить в чайлдах

V
06.11.2016
21:15:29
ой, наверное не очень читаемо получилось
ну в общем скажите мнение, если не читаемо на пейстбин переложу

b0g3r
06.11.2016
21:16:08
с пк норм

Maksim
06.11.2016
21:17:08
Помогите мне с кодом, пожалуйста

V
06.11.2016
21:17:08
ну да, я с пк писал и думал будет норм, но отправил с телефона чтоб бэктики не потерять из-за клиента. ну и увидел на телефоне, что уж больно много переносов строк выходит

Maksim
06.11.2016
21:17:09
https://codeshare.io/WawoS

b0g3r
06.11.2016
21:18:02
я чета не понял
а треды где)

V
06.11.2016
21:18:12

@#*!
06.11.2016
21:18:13

b0g3r
06.11.2016
21:18:43

V
06.11.2016
21:18:44

b0g3r
06.11.2016
21:18:47
просто автор питон не посмотрел
а чем помочь
о, не заметил)

Maksim
06.11.2016
21:19:07
Там короче я подключаюсь в бд
и он мне выдает
TypeError: add_user() missing 2 required positional arguments: 'userpass' and 'message'

b0g3r
06.11.2016
21:19:39
ага

Google

b0g3r
06.11.2016
21:19:41
а ты читать умеешь?

V
06.11.2016
21:19:47
есть
ух ты! оно еще и инетрактивное. хрена се модно как

b0g3r
06.11.2016
21:19:58
а че куда всё делось
алё

V
06.11.2016
21:20:03
гггг

Maksim
06.11.2016
21:20:17
Конечно, пропущены
Но они же указанны

b0g3r
06.11.2016
21:20:29
так ты код покажи

V
06.11.2016
21:20:38
ппц, там любой чтоль барагозить может?
есичо, удалил все не я

b0g3r
06.11.2016
21:20:59
коммунистический пастебин

V
06.11.2016
21:21:22
да уж, такое только в чатек с тысячей (!!!) юзеров выкладывать

b0g3r
06.11.2016
21:21:34
а вызов функции покажи

arisu
06.11.2016
21:22:05
Подстановки плз.

V
06.11.2016
21:22:14
лучше еше раз код, только на пейстбин нормальный

b0g3r
06.11.2016
21:22:22
закинь код на pastebin.com

Maksim
06.11.2016
21:23:50
http://pastebin.com/YZuAxZJe

b0g3r
06.11.2016
21:24:10
весь код, алё
а, я понял

Zart
06.11.2016
21:24:27

Google

V
06.11.2016
21:24:30
4 столбца, 3 параметра

b0g3r
06.11.2016
21:24:37
да не в этом дело

Zart
06.11.2016
21:24:53

b0g3r
06.11.2016
21:25:01
человек не понимает как работает его библиотека и декораторы там)

Arseniy
06.11.2016
21:25:06

Maksim
06.11.2016
21:25:19
Ну я только начал изучать
Вот и спрашиваю

Zart
06.11.2016
21:25:32
тогда тем более не нужно

Admin
ERROR: S client not available

b0g3r
06.11.2016
21:25:43

Maksim
06.11.2016
21:25:49
Давай

Zart
06.11.2016
21:26:12

Arseniy
06.11.2016
21:27:45
есть программа, которая запускает различные скрипты, но на выполнение дает только 30 секунд. Если случился таймаут - скрипт соответственно прибивается. Мне нужно этого избежать
@zartsoft ^

Zart
06.11.2016
21:28:27
если эта программа их прибивает через джоб апи, то прибьет и порожденные процессы

Arseniy
06.11.2016
21:29:13
в этом и весь смысл двойного форка...

Zart
06.11.2016
21:29:27
неа
в никсах даблфорк нужен для смены сессии. но цгруппы оно не избегает
в винде архитектура иная и джоба оно тоже не избегает
https://msdn.microsoft.com/en-us/library/windows/desktop/ms686709%28v=vs.85%29.aspx
It is not possible for any of the processes associated with the job to postpone or handle the termination. It is as if TerminateProcess were called for each process associated with the job.
Terminating a nested job additionally terminates all child job objects. Resources used by the terminated jobs are charged up the parent job chain in the hierarchy.
если та программа пользуется этим апи - ты не сможешь обойти это без админских прав

Google

V
06.11.2016
21:32:11
да, я тут давеча спрашивал, как лучше функции запускать через равные промежутки времени каждую в своем потоке и меня тут почти уговорили заюзать для этого селери. я пока что-то не решился да и реально случай не подходящий огород городить, в связи с этим выродил такой вот класс для этого дела:
class PollThread(Thread):
def __init__(self, function, interval, group=None, target=None, name=None, *args, **kwargs):
super().__init__(group=group, target=target, name=name)
self.function = function
self.interval = interval
self.args = args
self.kwargs = kwargs
self.ok_to_run = True
self.last_run = None
def run(self):
self.ok_to_run = True
while self.ok_to_run:
self.last_run = time()
self.function(*self.args, **self.kwargs)
next_run = self.last_run + self.interval
if time() < next_run:
sleep(next_run - time())
def stop(self):
self.ok_to_run = False
зарт, глянь пож-та, хотел бы твое мнение услышать. так норм делать?

Vadim
06.11.2016
21:32:18
Господи, зачем это всё…

Zart
06.11.2016
21:32:38
https://docs.python.org/3/library/sched.html

V
06.11.2016
21:32:54
смотрел, чот не то вроде
или я не понял как его применить к этому случаю

Zart
06.11.2016
21:33:28
лисапед, который не учитывает ряда вещей имхо
но вникать не хочу
просто подумай что произойдет с твоим кодом если юзер время подведет

V
06.11.2016
21:34:03
ну да, джунам по статусу положено лисапеды писать, имею право

Zart
06.11.2016
21:34:22
sched поэтому и дефолтит на монотоник

V
06.11.2016
21:35:11

Zart
06.11.2016
21:35:20
хорошо тебе
ни юзеров, ни нтп
а у меня от такой хуйни в модных версиях линупса сеть дохнет

V
06.11.2016
21:37:16
ну будем считать что мне повезло)) там критично таймстемпы последовательно получать, поэтому если кто-то что-то с часами похимичит во время работы скрипта, то яйца оторвут ему, а не мне

Zart
06.11.2016
21:37:48
ну самый тупой вариант - это while 1: time.sleep(x); ...

V
06.11.2016
21:37:53
по поводу sched я так понял это все-таки планировщик отложенного старта просто, не?

Zart
06.11.2016
21:38:05
твой код чуть улучшает это засыпая на дельту

V
06.11.2016
21:38:42
просто с учетом времени выполнения самой функции и возможности ситуации, что время выполнения превысило интервал

Zart
06.11.2016
21:39:03
если часы монотонны и не откатываются
если нет спящего режима
если соседний процесс не зохавает весь проц надолго
то в принципе работать будет
Эта группа больше не существует