Многопроцессорная обработка Python и доступ к базе данных с помощью pyodbc «небезопасны»?

 AAAAA"; //whatever you want
    echo htmlspecialchars($string);
?>

refrence htmlspecialchars

11
задан tgray 8 October 2009 в 16:02
поделиться

2 ответа

Многопроцессорная обработка полагается на травление для связи объектов между процессами. Невозможно обработать соединение pyodbc и объекты курсора.

>>> cPickle.dumps(aCursor)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.5/copy_reg.py", line 69, in _reduce_ex
    raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle Cursor objects
>>> cPickle.dumps(dbHandle)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.5/copy_reg.py", line 69, in _reduce_ex
    raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle Connection objects

«Он помещает элементы в work_queue», какие элементы? Возможно ли, что объект курсора тоже передается?

11
ответ дан 2 December 2019 в 20:18
поделиться

Ошибка возникает в модуле pickle , поэтому где-то ваш объект DB-Cursor становится маринованным и не выделенным (сериализуется в хранилище и снова десериализуется в объект Python).

Я предполагаю, что pyodbc.Cursor не поддерживает травление. Почему вы все равно должны пытаться сохранить объект курсора?

Проверьте, используете ли вы pickle где-нибудь в своей рабочей цепочке или неявно.

3
ответ дан 2 December 2019 в 20:18
поделиться
Другие вопросы по тегам:

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