Задать вопрос

Trheadind ( потоки ) работают на Win, но не работают на Linux. Почему?

На ноутбуке с вин код отлично работает, все выполняет. Но на Linux потоки не запускаются. Ubuntu на digitalocean. В чем может быть проблема?

import threading

        def wright_to_google_doc_table(data):
            '''
            Функция записывает переданные в словаре данные
            в таблицу на GoogleDocs.
            Создает необходимый лист для города, если нужно.
            Состав словаря:
                data['city_slu'] - используется для имени листа таблицы
                data['name']
                data['phone']
                data['email']
            '''
            # данные для авторизации таблицы - логин, пароль, код из ссылки таблицы.
            gc = gspread.login('xxxxxxxxx@gmail.com', 'xxxxxxxxxxxxxxxxx')
            document = gc.open_by_key('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
            try:
                table = document.worksheet(data['city_slug'])
            except:
                table = document.add_worksheet(data['city_slug'], 1, 3)
                table.update_acell('A1', u'ФИО')
                table.update_acell('B1', u'Телефон')
                table.update_acell('C1', u'Почта')
            finally:
                table.append_row([data['name'], data['phone'], data['email']])

        messages.success(self.request, self.success_message, u'openning_soon_success')
        city = self.get_city()
        data = {'city_slug': city.slug,
                'name': self.request.POST['name'],
                'phone': self.request.POST['phone'],
                'email': self.request.POST['email']}

        # выполняем функцию асинхронно
        t = threading.Thread(target=wright_to_google_doc_table,
                             args=(data,))
        t.setDaemon(True)
        t.start()

        return render(self.request, self.template_name, {})
  • Вопрос задан
  • 2497 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
i_dozi
@i_dozi Автор вопроса
Если кто-то столкнется с таким, мне помогло использовать multiprocessing вместо threading
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Disassociative
@Disassociative
Возможно, в твоем чудном Try Except блоке возникает ошибка, попробуй ловить то что ты ожидаешь, а не все ошибки.
Ответ написан
@Derfirm
Noname Developer.
t.daemon = True
t.start()

Так не пробовали?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы