
Jentry
10.07.2018
13:47:42
api glue еще так называемый, идеально делать на go, он прям для этого топчик

Alex
10.07.2018
13:48:06

Stanislav
10.07.2018
13:48:46

Google

Yevhen
10.07.2018
13:50:09

Stas
10.07.2018
14:17:01
ребят, можете сказать пож на сколько плохая задумка
MAX_PROCESS_COUNT = 4
def check_pid(pid_list):
""" Check For the existence of a unix pid. """
while len(pid_list) > MAX_PROCESS_COUNT - 1:
for pid in pid_list:
try:
os.kill(pid, 0)
except OSError:
continue
else:
pid_list.remove(pid)
def start_dump(db_json):
pid_list = []
for base in db_json:
check_pid(pid_list)
proc = subprocess.Popen("impdp {}".format(db_json[base]["name"]), shell=True)
pid_list.append(proc.pid)
и на сколько плохо добавить в проверку пида sleep
чтобы он не так часто пытался посылать os.kill

Aragaer
10.07.2018
14:21:28
эээ
не надо убивать по пиду
у proc есть terminate
и другие полезные штуки

Stas
10.07.2018
14:21:52
я не убиваю
это я сигнал получаю
что пид еще работает

Aragaer
10.07.2018
14:22:07
ну и проверка того, что оно живое тоже есть

Google

Aragaer
10.07.2018
14:22:43
Instances of the Popen class have the following methods:
Popen.poll()
Check if child process has terminated. Set and return returncode attribute.
Popen.send_signal(signal)¶
Sends the signal signal to the child.
можно посылать 0, если хочется
Popen.wait(timeout=None)
Wait for child process to terminate. Set and return returncode attribute.

Stas
10.07.2018
14:23:54
тоесть мне получается в моем случае надо сделать не список пидов а список процов
и для них делать poll

Aragaer
10.07.2018
14:24:19
на самом деле это тоже не совсем верно все
если уж использовать os

Stas
10.07.2018
14:24:43
а как сделать верно? с раннером спасибо, я посмотрел но мне малость оверхед
это модуль для ансибла

Aragaer
10.07.2018
14:24:59
os.wait()
Wait for completion of a child process, and return a tuple containing its pid and exit status indication: a 16-bit number, whose low byte is the signal number that killed the process, and whose high byte is the exit status (if the signal number is zero); the high bit of the low byte is set if a core file was produced.

Stas
10.07.2018
14:25:05
нужен коротенький и нихрена не умеющий кроме запуска одной штуки

Aragaer
10.07.2018
14:25:54
и посмотри там вокруг os.wait

Stas
10.07.2018
14:26:01
os.wait будет ждать один пид
а мне получается нужно 4
тоесть есть jsonнчик с параметрами

Aragaer
10.07.2018
14:26:41
не, он ждет не конкретный пид
он ждет любой

Stas
10.07.2018
14:26:49
а

Aragaer
10.07.2018
14:27:06
и его результат содержит пид того, кто завершился

Google

Stas
10.07.2018
14:27:21
мне нужно получается узнать, что ктото завершился
и я могу запустить следующего
чтобы 4 процесса параллельно всегда работали

Aragaer
10.07.2018
14:27:57
вот wait тут самое оно
в multiprocessing есть Pool, но не знаю, насколько оно применимо
вроде можно

Stas
10.07.2018
14:30:16
смотрел в сторону его, натыкался на статьи что работало медленно
os.wait кстати ждет же child process
и параметров никаких не принимает, так что похоже всетаки не подходит

Vladimir
10.07.2018
14:36:42
Привет всем
Есть два сервером

Stas
10.07.2018
14:37:09
на одном пики точеные

Vladimir
10.07.2018
14:37:20
Надо организовать хранение большоего числа фото
На одном ftp с фото точеными
На другом сервис и бд точкные
Т.е. есть ли смысл хранить фото отдельно на сервере
И в фс
Просто хранить фото в бд это ну такое
Или как это организовать?

Бензофуран
10.07.2018
14:38:48
Хранишь на сервере, в бд ID фото и адрес в фс

Google

Бензофуран
10.07.2018
14:38:57
Так подойдёт?

Vladimir
10.07.2018
14:39:23
Да, вот вопрос в том целесобразно ли такое разделение
Фоток порядка нескольких тб

Бензофуран
10.07.2018
14:39:44
Вполне, почему бы и нет
У бд спрошиваешь id фото - получаешь путь

Admin
ERROR: S client not available

Vladimir
10.07.2018
14:40:19
Я кто то говорил что в монго и постгрес реализованы какие то функции чтобы хранить файлы
Сам я с мускулем
Хранить лучше все же в фс?
И если да то какая фс
Zfs ?

Старый
10.07.2018
14:43:48
Zfs ?
xfs+gluster+в mysql ссылки на файл в gluster
Zfs ?
zfs сделана под другие задачи хранить в ней бд и делать из неё шары\хранить данные а не вм, в ней так себе дело

Roman
10.07.2018
14:49:48

Старый
10.07.2018
14:50:39
а как же btrfs?
btrfs+gluster? ну это будет слишком дохрена лишнего, cow под gluster ненужен

Stas
10.07.2018
14:52:55
такое родил))
без киллов

Aragaer
10.07.2018
15:08:04
а зачем тебе для os.wait параметры-то?

Google

Aragaer
10.07.2018
15:08:14
ты запустил 4 чайлдов и спишь в os.wait
как только хотя бы один из чайлдов помер, os.wait проснется
по результатам os.wait ты увидишь, кто именно помер, дозапустишь нового и опять спать

Nikolay
10.07.2018
15:39:42
не проще ли глянуть в сорцы supervisor?
или просто его взять)

Роман
10.07.2018
15:50:09
парни, а в requests можно сделать аналогичное как в курле: curl --socks5-hostname что бы резолв хоста происходил через прокси а не обычный днс?!

Denis
10.07.2018
15:50:36
Необходим django-разработчик на проектную работу - создание маркет плейса.
З/П от 60 до 90 т.р. в зависимости от уровня программиста.
По всем вопросам - пишите в личку
Если Вы из Питера , то можно будет поработать офлайн

Проксимов
10.07.2018
15:51:37

Олег
10.07.2018
15:53:04

Ser
10.07.2018
15:57:29
это вот как раз после тех самых курсов которые обещают золотые горы через 3 месяца

Проксимов
10.07.2018
15:58:06

Jentry
10.07.2018
16:15:02

Бензофуран
10.07.2018
16:21:18

Ser
10.07.2018
16:22:46
чот в цивилизованном 1500 в месяц это из разряда - в макдаке на раздаче

Бензофуран
10.07.2018
16:22:54
60-90к рублей джуну - цивилизованный мир