
Tishka17
05.06.2019
13:28:13

Tynuk
05.06.2019
13:28:17
def new_last_id(id_, message):
data = {message.chat.id: id_}
database= {}
with open('data.json','rt') as file_:
database = json.load(file_)
database.update(data)
with open('data.json','wt') as file_:
json.dump(database, file_)
def get_last_id(message):
with open('data.json','rt') as file_:
database = json.load(file_)
print(database)
last_id = database.get(str(message.chat.id))
return last_id

Ringo
05.06.2019
13:28:42

Tishka17
05.06.2019
13:29:07
кинь файлом

Google

Tishka17
05.06.2019
13:29:16
только не копипасть плиз!
прям как есть
да не
json

Denis
05.06.2019
13:48:02
в новом процессе аргумент в чем передается?
ну тип я создаю процесс и в него пихаю таблицу размером например в 1гб

Tishka17
05.06.2019
13:48:25
ты щас кому?

Denis
05.06.2019
13:48:27
куда он его закинет

Tishka17
05.06.2019
13:48:35
как пихаешь?

Denis
05.06.2019
13:49:09
ну явно не на стек таблица кладется

Tishka17
05.06.2019
13:50:17
хм. винда или линукс?

Google

Tishka17
05.06.2019
13:50:29
в линуксе вроде форкнется
и ничего не будет копироваться
а дальше линуксовый CoW

Alex
05.06.2019
13:51:29
эээм... вы про multiprocessing.Pool?

Tishka17
05.06.2019
13:52:04
вроде, но я не уверен

Alex
05.06.2019
13:52:50

Denis
05.06.2019
13:52:57
ну, где она находится я имею ввиду

Alex
05.06.2019
13:53:37

Tishka17
05.06.2019
13:53:41

Denis
05.06.2019
13:54:21

Tishka17
05.06.2019
13:54:29
что это?

Denis
05.06.2019
13:54:33
у них же разделяемая память

Alex
05.06.2019
13:54:43

Tishka17
05.06.2019
13:54:47
ну я не про общую

Denis
05.06.2019
13:54:52
видимо с некоторыми средствами обмена типа очереди

Alex
05.06.2019
13:54:59
ну с глобальной переменной это конечно будет работать

Google

͏
05.06.2019
13:55:01

Alex
05.06.2019
13:55:28
но лучше бы сделать shared memory с дочерним процессом явно

Denis
05.06.2019
13:55:52

Tishka17
05.06.2019
13:55:53
имхо, если данные не планируется менять, лучше просто форкнуться и переиспользовать

Denis
05.06.2019
13:56:05

Alex
05.06.2019
13:56:07
проблема лишь в том что в мультипроцессинг до 3.8 shared memory не завезли из коробки.

Denis
05.06.2019
13:56:08
а как сделать то так?

Alex
05.06.2019
13:56:15
в смысле он ее использует под капотом но API нет.

Tishka17
05.06.2019
13:56:38
а

Denis
05.06.2019
13:57:21
лучше бы завезли треды нормальные

Alex
05.06.2019
13:57:29
треды нормальные

Denis
05.06.2019
13:57:56

Alex
05.06.2019
13:58:31
и отлично решают свою задачу

Denis
05.06.2019
13:58:48

Tishka17
05.06.2019
13:58:55
нет

Denis
05.06.2019
13:58:55

Admin
ERROR: S client not available

Google

S
05.06.2019
13:59:01
set(lst) & set(other)
Подскажите, вылетело из головы, можно лямдой - найти свовпадение в поле объекта в списке объектов..
if a_name in (x.name for x in x_arr) - что то похожее на это

Tishka17
05.06.2019
13:59:28

Denis
05.06.2019
13:59:57

?? Eugene
05.06.2019
14:00:17

Tishka17
05.06.2019
14:00:49

Denis
05.06.2019
14:01:13

Tishka17
05.06.2019
14:01:15

Alex
05.06.2019
14:01:28

Tishka17
05.06.2019
14:01:33

Alex
05.06.2019
14:01:36

Tishka17
05.06.2019
14:01:36
это PoC
вопрос что у него там
map или ещё что

Denis
05.06.2019
14:02:02

Tishka17
05.06.2019
14:02:22
если мап, он не пикли твесь список, он посылает по элементу
если конечно каждый элеент гигабайт, имеет смысл посылать только номера
если мелкие, то выигрыша не будет

Alex
05.06.2019
14:03:29
в теории можно как-то через https://docs.python.org/3.7/library/multiprocessing.html#module-multiprocessing.sharedctypes
попробовать

Google

Denis
05.06.2019
14:03:34

Tishka17
05.06.2019
14:05:18
но имхо это слегка костыль
class Runner:
def run(self, data):
self.data = data
pool.map(self.apply, range(len(data))
def apply(self): ...
r = Runner()
r.run()

Denis
05.06.2019
14:05:56

Tishka17
05.06.2019
14:06:15
ну ты можешь чтобы каждый просто грузил только то что ему надо

Denis
05.06.2019
14:06:55

Tishka17
05.06.2019
14:07:17
ну вон ещё костыль