在我的网站中,用户可以在每次需要时更新他们的个人资料(手动),或者每天自动更新一次.
现在正在与芹菜一起分发这项任务.
但我有一个"问题":
每天,在自动更新中,作业将所有用户(+ -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方式运行?或专门为每个分离的队列:手动和自动?
我正在做一个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类中: …
我试着用以下模型做一个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模型创建表单时: …
我有一个有 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才能访问。
我试图做一个匹配一些嵌套数组条件的 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) 我正在测试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)