我刚刚切换到Django 1.6(使用Posgres 9.1)并且有一些我无法自己回答的问题:
(已回答)是否有一个声明打印/显示我当前在一个或多个以及哪些transaction.atomic块中?
(已回答)我既没有TransactionMiddleware启用也没有设置ATOMIC_REQUESTS为True.所以默认情况下我的代码没有包含在一个transaction.atomic块中,对吗?
在transaction.atomic块内执行时,通过游标执行的sql语句是否正确提交?有没有其他/更好的方法来提交它们?
with transaction.atomic():
cursor = connection.cursor()
cursor.execute(sql)
Run Code Online (Sandbox Code Playgroud)我是否需要包裹cursor.executemany()一个transaction.atomic块或者执行是否已经原子地执行?
如何查看当前autocommit状态?何时在连接开始时将事务设置为全局数据库设置?
我有一个任务calculate_common_locations,它运行一次CELERYBEAT_SCHEDULE.该任务只是调用数据库中的函数:
@app.task
def calculate_common_locations():
db.execute("SELECT * FROM calculate_centroids('b')")
Run Code Online (Sandbox Code Playgroud)
这是条目CELERYBEAT_SCHEDULE:
CELERYBEAT_SCHEDULE = {
'common_locations': {
'task': 'clients.tasks.calculate_common_locations',
'schedule': crontab(hour=23, day_of_week='sun'), #every week
},
[..]
}
Run Code Online (Sandbox Code Playgroud)
该计划包括每天运行一次或每10秒运行一次的更多任务.这些任务似乎没有多次重新运行.芹菜花显示任务执行超过20次.第一个按计划启动,运行约100秒,成功然后再次启动.

只有一个celerybeat运行:
ps -Af | grep celerybeat
foo 24359 779 0 01:53 ? 00:00:04 [celeryd: celery@celery:MainProcess] -active- (worker --beat --app=cloud.celeryapp:app --concurrency=10 -l INFO -s /home/foo/run/celerybeat-schedule --pidfile=/home/foo/run/celerybeat.pid)
Run Code Online (Sandbox Code Playgroud)
这就是芹菜的开始方式(通过supervisord):
celery worker --beat --app=cloud.celery app:app --concurrency=10 -l INFO -s /home/foo/run/celerybeat-schedule --pidfile=/home/foo/run/celerybeat.pid
Run Code Online (Sandbox Code Playgroud)
我没有使用--concurrency = 10 …
版:
> sudo rabbitmqctl status | grep '{rabbit,"RabbitMQ",'
{rabbit,"RabbitMQ","3.5.6"},
Run Code Online (Sandbox Code Playgroud)
错误:
> sudo rabbitmq-plugins enable rabbitmq_management
Plugin configuration unchanged.
Applying plugin configuration to rabbit@ip-172-31-26-169... failed.
* Could not contact node rabbit@ip-172-31-26-169.
Changes will take effect at broker restart.
* Options: --online - fail if broker cannot be contacted.
--offline - do not try to contact broker.
Run Code Online (Sandbox Code Playgroud)
兔子正在运行:
> sudo service rabbitmq-server status
Status of node 'rabbit@ip-172-31-26-169' ...
[{pid,22865},
..
Run Code Online (Sandbox Code Playgroud) git diff向我展示了我的代码中的一些内容:
<div style={styles.loadingContainer}><U+2028>
<CircularProgress />
- </div><U+2028>
+ </div>
Run Code Online (Sandbox Code Playgroud)
我想 grep 所有文件来查找并删除它们。他们搞砸了设计,到目前为止花了我 3 个小时:-(
运行我的代码时,我收到此异常(打印类进行调试):
An error occurred (DBInstanceNotFound) when calling the DescribeDBInstances operation: DBInstance <instance name> not found.
<class 'botocore.errorfactory.DBInstanceNotFoundFault'>
Run Code Online (Sandbox Code Playgroud)
我想像这样正确处理异常:
from botocore.exceptions import DBInstanceNotFoundFault
from botocore.errorfactory import DBInstanceNotFoundFault
try:
<fetch info about db instance>
except DBInstanceNotFoundFault as e:
<handle error>
Run Code Online (Sandbox Code Playgroud)
不幸的是DBInstanceNotFoundFault既没有在存在botocore.exceptions也不botocore.errorfactory.我已经克隆了boto3以及botocore和grep'd for DBInstanceNotFoundFault但是找不到它.
我该如何导入它?
场景:我正在尝试将某些内容复制到Pycharm 中。在 Pycharm 中意外选择某些内容(甚至是空行)时,它会被复制并覆盖缓冲区。粘贴然后粘贴空行(或任何被选中的)而不是我最初复制的内容。
是否有可能避免这种行为?
猫测试.py
from importlib import import_module
bar = import_module('bar', package='project')
Run Code Online (Sandbox Code Playgroud)
ls项目/
__init__.py
__init__.pyc
bar.py
bar.pyc
Run Code Online (Sandbox Code Playgroud)
蟒蛇测试.py
Traceback (most recent call last):
File "test.py", line 5, in <module>
bar = import_module('bar', package='project')
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named bar
Run Code Online (Sandbox Code Playgroud)
列出导入的模块(sys.modules)不显示任何模块项目。
我可以使用 python shell导入bar 。
有任何想法吗?
Image 0dd747e33c96 already pushed, skipping
Image 9ebea32a283d already pushed, skipping
Image 3690474eb5b4 already pushed, skipping
Image cbf4c83202ff already pushed, skipping
Image 09ddd09520af already pushed, skipping
Run Code Online (Sandbox Code Playgroud)
如何从私有docker 注册表中删除这些镜像?(这是 v1)?我可以访问服务器。
我为什么要这么做?我正在通过 Jenkins docker 插件构建一个图像,它只是不会将更改推送到注册表。以当地作品为基础。
我也很乐意强行覆盖它们。
1: git checkout master
2: git branch feature
3: git commit 'commit msg'
Run Code Online (Sandbox Code Playgroud)
我期待git在第2行切换分支(但它不是真的很烦人,因为我必须恢复在master上的签入).
有没有办法让git切换分支?
python ×3
django ×2
git ×2
atomic ×1
boto3 ×1
celery ×1
celerybeat ×1
copy-paste ×1
database ×1
diff ×1
django-1.6 ×1
docker ×1
geospatial ×1
gis ×1
git-branch ×1
k-means ×1
pycharm ×1
rabbitmq ×1
transactions ×1
unicode ×1