小编Mr.*_*un.的帖子

Python - SQLAlchemy - MySQL - 多个实例处理相同的数据

我在数据库中有一个表,用SQLAlchemy ORM模块映射(我有一个"scoped_session"变量)我想要我的程序的多个实例(不仅仅是线程,也来自几个服务器)才能在同一个表上工作而不是处理相同的数据.所以我编写了一个手动"行锁"机制,以确保在这个方法中处理每一行我在表上使用"完全锁定",而我"行锁定"它:

def instance:
        s = scoped_session(sessionmaker(bind=engine)
        engine.execute("LOCK TABLES my_data WRITE")
        rows = s.query(Row_model).filter(Row_model.condition == 1).filter(Row_model.is_locked == 0).limit(10)
        for row in rows:
            row.is_locked = 1
            row.lock_time = datetime.now()
        s.commit()
        engine.execute("UNLOCK TABLES")
        for row in row:
            manipulate_data(row)
            row.is_locked = 0
        s.commit()

for i in range(10):
    t = threading.Thread(target=instance)
    t.start()
Run Code Online (Sandbox Code Playgroud)

问题是,在运行某些实例时,多个线程正在崩溃并产生此错误(每个):

sqlalchemy.exc.DatabaseError :(由于Query-invoked autoflush引发;如果此刷新过早发生,请考虑使用session.no_autoflush块)(DatabaseError)1205(HY000):超出锁定等待超时; 尝试重新启动事务'UPDATE my_daya SET row_var = 1}

捕获量在哪里?是什么让我的数据库表没有成功解锁?

谢谢.

python mysql multithreading sqlalchemy

6
推荐指数
1
解决办法
2130
查看次数

带有python茎(基本)的TOR-“ TOR”不在PATH中

我正在尝试将.onion网站的内容转换为python,一些研究表明该词为' stem ',而当我运行此教程脚本时,或更具体地说,当我尝试使用stem.process.launch_tor_with_config时,我得到了这个错误:

“ tor”在您的系统上不可用。也许它不在您的路径中?

我应该安装某种tor程序,我得到了tor浏览器捆绑包,并将/ Tor库(带有tor.exe)放到了自己的路径中,但这没有帮助...显然我缺少了一些东西基本,请指教。

非常感谢...

python tor python-3.x system-paths

5
推荐指数
1
解决办法
4213
查看次数

Django 表单 - 我可以创建一个对象而不保存它吗?

我有一个对象(基于myModel),我想根据形式(以创建myModelForm),我也希望该对象将涉及到该电源线 ForeignKey的对象(组),我想自己决定。(即不要”不希望它在形式中。

因此,如果我尝试使用form.save()会出现错误。有没有办法在使用save()之前添加 Group ForeignKey(在视图中

我的代码看起来像这样:

class myModel(models.Model):
    myGroup = ForeignKey(Group)
    normal_field1 = TextField()
    ...
    normal_field2 = TextField()


class myModelForm(ModelForm):
    class Meta:
       model = myModel
       fields = [normal_field1,noraml_field2]
Run Code Online (Sandbox Code Playgroud)

谢谢你

django django-forms

0
推荐指数
1
解决办法
1597
查看次数