Хотелось бы еще узнать насчет записи в бд. Если я буду использовать mongodb, то как правильно с нескольких процессов писать в одну базу ? Для записи в обычный текстовый файл я сделал так:Если вы будете сохранять разные объекты, то никаких локов не нужно. Если вы будете из разных процессов сохранять с помощью операции save (http://docs.mongodb.org/manual/reference/method/db.collection.save/) один и тот же объект, значит у вас неправильная логика приложения. Когда вам нужно работать из разных потоков с одним объектом, вам нужно использовать операцию update (http://docs.mongodb.org/manual/core/update/). Никаких локов не нужно. Под объектом выше я подразумеваю какой-то конкретный объект конкретной коллекции mongodb.
, то нужно эти массивы/словари как-то специально расшаривать для всех процессовВ питоне обычно употребляется термин список (list), а не массив. Ещё есть кортежи (tuple), опять же не массивы. Не очень понял, что вы спрашивали, но если у вас есть нечто доступное для чтения из разных процессов и вы это нечто специально не “расшаривали”, скорее всего и не нужно его “расшаривать”.
lorienЗнаю-знаю. Ну, например есть у меня список asdasd = С элементами типа string. В каждом процессе (их, к примеру, 20 штук) у меня отправляются get-запросы на разные страницы и там (на странице) проверяется наличие элементов из списка asdasd. Вопрос: можно ли просто это сделать как
обычно употребляется термин список (list), а не массив. Ещё есть кортежи (tuple
... for x in asdasd: if x in res: pass ...
lorienНу вот я так же думаю, хотч не до конца в этом уверен.
скорее всего и не нужно его “расшаривать”.
lorienЯ немного почитал доки и мне кажется, что мне нужен insert. Я хотел вот что узнать: мне для каждого процесса нужно делать
нужно использовать операцию update
client = MongoClient() db = client.database
p = Process(target=func, args=(db))