小编fab*_*ols的帖子

celery - 需要优先运行的任务

在我的网站中,用户可以在每次需要时更新他们的个人资料(手动),或者每天自动更新一次.

现在正在与芹菜一起分发这项任务.

但我有一个"问题":

每天,在自动更新中,作业将所有用户(+ -6k用户)放在队列中:

from celery import group
from tasks import *
import datetime
from lastActivityDate.models import UserActivity

today   = datetime.datetime.today()
one_day = datetime.timedelta(days=5)
today -= one_day

print datetime.datetime.today()

user_list = UserActivity.objects.filter(last_activity_date__gte=today)
g = group(update_user_profile.s(i.user.auth.username) for i in user_list)

print datetime.datetime.today()
print g(user_list.count()).get()
Run Code Online (Sandbox Code Playgroud)

如果有人尝试进行手动更新,他们将进入队列并永远执行.

有没有办法将此手动任务设置为以piority方式运行?或专门为每个分离的队列:手动和自动?

django queue celery

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

WSDL客户端中的CDATA元素

我正在做一个WSDL客户端,想知道如何将XML元素设置为CDATA.

我正在使用它wsimport来生成源代码,CDATA元素是请求XML的一部分.这是请求的XML类:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { "dataRequest" }) 
@XmlRootElement(name = "ProcessTransaction")
public class ProcessTransaction {

    protected String dataRequest;

    public String getDataRequest() {
        return dataRequest;
    }

    public void setDataRequest(String value) {
        this.dataRequest = value;
    }  
} 
Run Code Online (Sandbox Code Playgroud)

我已经尝试了@XmlAdapter,但它在输出上没有任何改变......

import javax.xml.bind.annotation.adapters.XmlAdapter;

public class AdaptorCDATA extends XmlAdapter<String, String> {

    @Override
    public String marshal(String arg0) throws Exception {
        return "<![CDATA[" + arg0 + "]]>";
    }

    @Override
    public String unmarshal(String arg0) throws Exception {
        return arg0;
    }
}
Run Code Online (Sandbox Code Playgroud)

在XML类中: …

java xml wsdl jaxb wsimport

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

django - 带有多个ForeignKey的inlineformset_factory

我试着用以下模型做一个formset(boost是主要的):

class boost(models.Model):
   creator = models.ForeignKey(userInfo)
   game  = models.ForeignKey(gameInfo)
   name  = models.CharField(max_length=200)
   desc  = models.CharField(max_length=500)
   rules = models.CharField(max_length=500)
   subscribe = models.IntegerField(default=0)

class userInfo(models.Model):
   pic_url= models.URLField(default=0, blank=True)
   auth   = models.ForeignKey(User, unique=True)
   birth  = models.DateTimeField(default=0, blank=True)
   country= models.IntegerField(default=0, blank=True)

class gameInfo(models.Model):
   psn_id = models.CharField(max_length=100)
   name   = models.CharField(max_length=200)
   publisher = models.CharField(max_length=200, default=0)
   developer = models.CharField(max_length=200, default=0)
   release_date = models.DateTimeField(blank=True, null=True)

我想显示一个表单来添加一个Boost项目,尝试这样做:

   TrophyFormSet = inlineformset_factory(db.gameInfo, db.boost, extra=1)
   formset = TrophyFormSet()

这是我的问题:

1 - 重新定义时,"Creator"的组合框显示"db.userInfo"列表(字面意思)!我希望这显示已存在于数据库中的db.userInfo.auth.username ...如何执行此操作?

2 - 这样,我的"db.gameInfo"在哪里可供选择?

谢谢 != d

======

czarchaic很好地回答了我的问题!现在,我只需要一个小问题:

当我使用modelform为boost_trophy模型创建表单时: …

python django

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

按主机名动态路由到特定 StateFulSet POD

我有一个有 2 个副本的 StatefulSet。我想创建一个端点,以便能够访问该副本的任何一个,并传递主机名 ID,并且如果我将其扩展到更多副本,则需要可以访问新的 Pod。

我可以像这样创建一个 Ingress:

apiVersion: voyager.appscode.com/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  namespace: default
spec:
  rules:
  - host: appscode.example.com
    http:
      paths:
      - path: /0
        backend:
          hostNames:
          - web-0
          serviceName: nginx-set
          servicePort: '80'
      - path: /1
        backend:
          hostNames:
          - web-1
          serviceName: nginx-set
          servicePort: '80'

Run Code Online (Sandbox Code Playgroud)

这样,GETonappscode.example.com/0将被路由到web-0pod。但是,我怎样才能以动态的方式做到这一点呢?如果我将副本更改为 3,我将需要手动创建一条新的 pod 路径web-2才能访问。

kubernetes kubernetes-ingress kubernetes-statefulset

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

mongodb - 具有多个标识符和混合条件(AND/OR)的 arrayFilters

我试图做一个匹配一些嵌套数组条件的 mongodb 查询,但没有成功......

文件:

[
   {
      "_id":1,
      "name":"foo",
      "games":[
         {
            "name":"Game1",
            "data":[
               { "data_id":1, "date":"YYYMMDD" },
               { "data_id":2, "date":"YYYMMDD" }
            ]
         },
         {
            "name":"Game2",
            "data":[
               { "data_id":1, "date":"YYYMMDD" },
               { "data_id":2, "date":"YYYMMDD" }
            ]
         }
      ]
   },
   {
      "_id":2,
      "name":"bar",
      "games":[
         {
            "name":"Game2",
            "data":[ 
               { "data_id":1, "date":"YYYMMDD" },
               { "data_id":2, "date":"YYYMMDD" }
            ]
         }
      ]
   }
]
Run Code Online (Sandbox Code Playgroud)

我想做一个update_many,匹配以下数据:

all documents
AND ( (_id = 1 and games.name = 'Game1' and games.data.data_id = 1 ) OR (_id = 2 and games.name …
Run Code Online (Sandbox Code Playgroud)

mongodb conditional-statements

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

feedparser 无法获得 youtube 播放器

我正在测试feedparser我的 RSS 提要。它就像一个魅力,我得到了所有的条目。

有些新闻有一个内嵌的 youtube 播放器,但这只是没有出现在 feedparser 的返回值中。

我的代码很简单:

d = feedparser.parse('http://feeds.feedburner.com/NotciasPs3evita-Mypst')
Run Code Online (Sandbox Code Playgroud)

这将返回(摘录):

 guidislink': False,
          'id': u'http://mypst.com.br/forum/index.php?/topic/17336-gamegen-call-of-duty-black-ops-2-ganha-trailer-com-acao-real-e-muitas-surpresas/',
          'link': u'http://mypst.com.br/forum/index.php?/topic/17336-gamegen-call-of-duty-black-ops-2-ganha-trailer-com-acao-real-e-muitas-surpresas/',
          'links': [{'href': u'http://mypst.com.br/forum/index.php?/topic/17336-gamegen-call-of-duty-black-ops-2-ganha-trailer-com-acao-real-e-muitas-surpresas/',
                     'rel': u'alternate',
                     'type': u'text/html'}],
          'published': u'Mon, 29 Oct 2012 14:53:58 +0000',
          'published_parsed': time.struct_time(tm_year=2012, tm_mon=10, tm_mday=29, tm_hour=14, tm_min=53, tm_sec=58, tm_wday=0, tm_yday=303, tm_isdst=0),
          'summary': u'A Activision revelou hoje um novo trailer de Call of Duty: Black Ops 2, substituindo as cenas de a\xe7\xe3o do jogo por cenas de a\xe7\xe3o na vida real. O trailer traz diversas \u201csurpresas\u201d e …
Run Code Online (Sandbox Code Playgroud)

python feedparser

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