小编Anu*_*har的帖子

django模型对象实例应该传递给芹菜吗?

# models.py
from django.db import models

class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    text_blob = models.CharField(max_length=50000)

# tasks.py
import celery
@celery.task
def my_task(person):
    # example operation: does something to person 
    # needs only a few of the attributes of person
    # and not the entire bulky record
    person.first_name = person.first_name.title()
    person.last_name = person.last_name.title()
    person.save()
Run Code Online (Sandbox Code Playgroud)

在我的应用程序的某个地方我有类似的东西:

from models import Person
from tasks import my_task
import celery
g = celery.group([my_task.s(p) for p in Person.objects.all()])
g.apply_async()
Run Code Online (Sandbox Code Playgroud)
  • 芹菜泡菜将它发送给工人吗?
  • 如果工作人员在多台计算机上运行,​​那么整个人对象(以及主要不需要的庞大的text_blob)是否会通过网络传输?有没有办法避免它?
  • 如何有效且均匀地将Person记录分发给在多台机器上运行的工作人员?

  • 这可能是一个更好的主意吗?如果Person有几百万条记录,难道不会压倒db吗?

    # tasks.py …
    Run Code Online (Sandbox Code Playgroud)

python django celery

21
推荐指数
1
解决办法
7525
查看次数

如何使用gitPython进行git reset --hard?

那么标题是自我解释的.相当于git reset --hard使用GitPython模块运行(在终端上)的python代码是什么?

python git gitpython

11
推荐指数
3
解决办法
5215
查看次数

强制pyYAML一致地转储

In [136]: a = [1,2,3,4,5]

In [137]: print yaml.dump(a)
[1, 2, 3, 4, 5]


In [138]: a = [1,2,3,4,5, [1,2,3]]

In [139]: print yaml.dump(a)
- 1
- 2
- 3
- 4
- 5
- [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

为什么上述两种产出dumps不同?是否有可能强制pyYAML分裂list总是?

python yaml pyyaml

9
推荐指数
1
解决办法
6190
查看次数

跟踪 celery.group 任务的进度?

@celery.task
def my_task(my_object):
    do_something_to_my_object(my_object)


#in the code somewhere 
tasks = celery.group([my_task.s(obj) for obj in MyModel.objects.all()])
group_task = tasks.apply_async()
Run Code Online (Sandbox Code Playgroud)

问:celery 有没有什么东西可以检测一个小组任务的进度?我可以计算有多少任务以及已经处理了多少任务吗?

python django celery django-celery

9
推荐指数
2
解决办法
1万
查看次数

如何在linux中拍摄快照 - 以编程方式C++

我目前正参与一个项目,要求我反复拍摄屏幕快照.我正在使用qt的grabScreen函数来做同样的事情.每当程序拍摄快照导致计算机看起来非常慢时,屏幕会冻结半秒钟:(

任何人都可以建议我这样做的更好的方法吗?

c++ linux qt

8
推荐指数
1
解决办法
1280
查看次数

如何在pymongo中使用count清楚?

我有一个sql:

select field2, count(distinct field1) from table group by field2;
Run Code Online (Sandbox Code Playgroud)

如何在pymongo中实现这个sql?

mongodb pymongo

7
推荐指数
2
解决办法
3245
查看次数

python多处理 - 访问使用Process.start调用的函数内的进程名称(target = func)

我正在玩python多处理模块,并希望能够显示当前正在执行的进程的名称.

如果我创建一个继承自multiprocessing.Process的自定义MyProcess类,我可以通过以下方式打印进程的名称

from multiprocessing import Process

class MyProcess(Process):
   def __init__(self):
        Process.__init__(self)

   def run(self):
        #do something nasty and print the name
        print self.name

p = MyProcess()
p.start()
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用Process类的构造函数创建进程

from multiprocessing import Process
def somefunc():
    print Process.name                 #1

p = Process(target=somefunc)
p.start()
print p.name                           #2
Run Code Online (Sandbox Code Playgroud)

#2有效但#1没有.有没有办法可以在里面打印当前正在执行的进程的名称somefunc

python inheritance multiprocessing

7
推荐指数
1
解决办法
6875
查看次数

如何跟踪组成一个组内各个任务的进度,这些组在芹菜中形成一个和弦的标题?

import celery
def temptask(n):
    header=list(tempsubtask.si(i) for i in range(n))
    callback=templink.si('printed at last?')
    r = celery.chord(celery.group(header))(callback)
    return r

@task()
def tempsubtask(i):
    print i    
    for x in range(i):
        time.sleep(2)
        current_task.update_state(
            state='PROGRESS', meta={'completed': x, 'total': i })

@task()
def templink(x):
    print 'this should be run at last %s'%x

#executing temptask
r = temptask(100)
Run Code Online (Sandbox Code Playgroud)

我想要了解tempsubtask更新的进度状态.我怎样才能实现它?

python django celery

7
推荐指数
2
解决办法
1510
查看次数

我们如何配置scrapyd以使用virtualenv进行项目?

我正在尝试配置scrapyd以在Ubuntu Server 12.04计算机上运行.我无法将项目部署到它,因为它找不到一些库.我可以在主要或默认的python环境(由os维护的环境)中安装所有依赖项,但我不想这样做.

有没有办法scrapyd配置使用python virtualenv?如果是,怎么样?如果不是,为什么?

python virtualenv scrapy

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

从网址列表下载<非常大>页数的最佳方法是什么?

我要下载并保存在数据库中的列表中有一个大于100,000个url(不同的域),以便进行进一步处理和修改。

使用scrapy代替python的多处理/多线程处理是否明智?如果是,我如何编写独立脚本来执行相同操作?

另外,请随意提出其他令人敬畏的方法。

python multithreading web-crawler multiprocessing scrapy

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