我正在进行演示,代码很简单:
# The Config
class Config:
BROKER_URL = 'redis://127.0.0.1:6379/0'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0'
CELERY_ACCEPT_CONTENT = ['application/json']
# The Task
@celery_app.task()
def add(x, y):
return x + y
Run Code Online (Sandbox Code Playgroud)
启动工人:
$ celery -A appl.task.celery_app worker --loglevel=info -broker=redis://localhost:6379/0
-------------- celery@ALBERTATMP v3.1.13 (Cipater)
---- **** -----
--- * *** * -- Linux-3.2.0-4-amd64-x86_64-with-debian-7.6
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: celery_test:0x293ffd0
- ** ---------- .> transport: redis://localhost:6379/0
- ** ---------- .> results: disabled
- *** --- * --- .> …Run Code Online (Sandbox Code Playgroud) 我有css打印就像这样简单:
@page {
@top-left {
content: "TOP SECRET";
color: red
}
@bottom-center {
content: counter(page);
font-style: italic
}
}
Run Code Online (Sandbox Code Playgroud)
但Chrome打印预览并保存为pdf似乎根本无法识别这一点.如何在引用时正确设置页眉和页脚?
编辑:@page没有参考支持
但是,我还有其他选择吗?我不是在网站上工作.该产品仅需要pdf作为结果.我可以接受chrome,webkit,plantomjs等.
我正在使用一个函数从webapi获取数据.基本使用$.ajax.
我现在用waits()这样测试它:
describe('xxxxxxxxxxxxxxxxxxxxx', function () {
var r;
it('fetchFilter', function () {
runs(function () {
model.fetch(opts)
.done(function(data) {
r = data;
});
});
waits(2000);
runs(function () {
expect(r[0].gender).toBeDefined();
});
});
});
Run Code Online (Sandbox Code Playgroud)
问题是:
waits(2000)很好地完成工作.由于各种原因(网络连接,api it self的算法效率等),我可能要waits(5000)或者更多,或者对于某些模型waits(500)来说已经足够了.最令人讨厌的是它完全失控.waits()因为测试规范浪费了很多时间等待.运行整个套件的时间太长,无法接受.有没有best practice做过那种事情?
PS:我知道单元测试不应该应用于某些依赖webapi或数据库的函数.但我正在使用单页js-heavy-webapp.数据获取过程与我如何使用js模型一样重要.
我正在使用自签名证书进行调试.
$ cp hbrls-server.cert /usr/local/share/ca-certificates/
$ update-ca-certificates
Run Code Online (Sandbox Code Playgroud)
在那之后,我可以看到hbrls-server.pem在/etc/ssl/certs/.但requests仍然会引发SSLError.
如果我指定这样的证书:requests.get('https://blabla', verify='/etc/ssl/certs/hbrls-server.pem'),那就没问题了.
并python -m requests.certs返回/usr/local/lib/python2.7/dist-packages/certifi/cacert.pem.
如何requests使用系统上的证书.我正在使用dockerize ......,并且不希望verify=path-to-cert在我的代码中看到它.
编辑: ubuntu 12.04,python 2.7.3,请求2.7.0
我正在使用yaml.有一条线说:daemonize : /var/www/apps/myapp.log
如果uwsgi -y vassals/myappconfig.yaml,该网站在后台运行.我可以在终端做其他事情,甚至退出.这是我期待的效果.
如果uwsgi --emperor vassals,网站可以运行,但它终止在终端.我必须用ctrl + c它来结束它才能返回终端.然后网站关闭了.那不是我所期待的.
我不想用像这样的东西nohup.如果uwsgi --emperor不是正确的解决方案,我宁愿一个接一个地加载网站,所有都运行daemonized.
我正在使用jekyll-bootstrap在GitHub上维护博客。
我想要一个排序的标签列表。帖子数量最多的标签排在第一位。然后,我可以看到一个显示字体大小较大的第一个标签和字体大小较小的最后一个标签的显示器。而且我还想要一个拼接功能。
如果在python / Jinja2中,我想要这样的代码:
{% for tag in sorted_tags[:10] %}
<li style="font-size:{{ tag.count }}px;">{{ tag.name }}</li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
ruby / jekyll中的等效实现是什么?
代码很简单:
Class A(Base):
status = Columns(Integer)
@hybrid_property
def is_ok(self):
return self.status > 0
Run Code Online (Sandbox Code Playgroud)
但
session.query(A).filter(A.is_ok).all()
Run Code Online (Sandbox Code Playgroud)
将引发异常:TypeError: Boolean value of this clause is not defined。
我试过了print result[0].is_ok, type(result[0].is_ok)。它是True <type 'bool'>。
那么我怎样才能过滤基于 hybrid_property
我的答案
在@van 的帮助下,我知道该怎么做。
argfilter(*criterion)应该是一个SQL 表达式对象。我曾经认为它需要一个布尔值作为参数,但不是!
条件是适用于选择的 WHERE 子句的任何 SQL 表达式对象。字符串表达式通过 text() 构造被强制转换为 SQL 表达式构造。
代码告诉:
# wrong code:
@is_ok.expression
def is_ok(self):
return self.status > 30 and self.status < 90
# correct code:
from sqlalchemy.sql import and_ …Run Code Online (Sandbox Code Playgroud) 我有一个简单的python/flask应用程序.就像这样container
/var/www/app/
appl/
static/
...
app.py
wsgi.py
Run Code Online (Sandbox Code Playgroud)
在使用docker之前,我曾经让nginx直接提供静态文件.像这样:
location /static {
alias /var/www/www.domain.com/appl/static;
}
location / {
uwsgi_pass unix:///tmp/uwsgi/www.domain.com.sock;
include uwsgi_params;
}
Run Code Online (Sandbox Code Playgroud)
但现在静态文件位于容器内部,nginx无法访问.
我可以想到两种可能的解决方案:
像以前一样在容器内启动一个nginx,并让主机nginx使用像8000这样的端口与容器nginx进行通信
安装(host)/var/www/www.domain.com/static到(container)/var/www/static和复制的所有静态文件run.sh
码头工人更喜欢什么?
我正在订阅 2 个聊天室频道。该代码将停留在C第二个通道收到新消息之前。然后一直停留在A第一个通道收到新消息为止。
我怎样才能让2个通道分开工作。
function* ChatRoomPageEnter() {
const chanChat = yield call($stomp.eventChannel, 'ChatRoomPage', '/topic/chat');
const chanEcho = yield call($stomp.eventChannel, 'ChatRoomPage', '/user/queue/echo');
while (true) { // eslint-disable-line no-constant-condition
console.log('A');
const messageChat = yield take(chanChat);
console.log('B');
yield put({ type: 'chatroom/newMessage', payload: messageChat });
console.log('C'); // <----
const messageEcho = yield take(chanEcho);
console.log('D');
yield put({ type: 'chatroom/newMessage', payload: messageEcho });
console.log('E');
}
}
Run Code Online (Sandbox Code Playgroud) 我编写了Windows服务程序来做日常工作.
我InstallUtil对Windows服务,它会唤醒并做一些事情然后thread.sleep(5min)
代码很简单,但我注意到了潜在的内存泄漏.我使用它DOS tasklist绘制了它并绘制了一个图表:

我可以说很明显存在内存泄漏,尽管很少.
我的代码如下,请帮我找到潜在的泄漏.谢谢.
public partial class AutoReport : ServiceBase
{
int Time = Convert.ToInt32(AppSettings["Time"].ToString());
private Utilities.RequestHelper requestHelper = new RequestHelper();
public AutoReport()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
Thread thread = new Thread(new ParameterizedThreadStart(DoWork));
thread.Start();
}
protected override void OnStop()
{
}
public void DoWork(object data)
{
while (true)
{
string jsonOutStr = requestHelper.PostDataToUrl("{\"KeyString\":\"somestring\"}", "http://myurl.ashx");
Thread.Sleep(Time);
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:使用WinDbg后@Russell建议.我该怎么做这些课程?
MT Count TotalSize ClassName
79330b24 1529 123096 System.String
793042f4 …Run Code Online (Sandbox Code Playgroud) c# ×1
celery ×1
css ×1
daemon ×1
docker ×1
jasmine ×1
javascript ×1
jekyll ×1
memory-leaks ×1
printing ×1
python ×1
redis ×1
redux-saga ×1
sqlalchemy ×1
ssl ×1
uwsgi ×1