我正在使用node.js服务器在我的Web应用程序和数据库之间创建一个"接近实时"的套接字.目前我正在使用MySQL,我在节点中每秒轮询一次以检查表中是否有任何更改(基于时间戳).
我想知道是否有任何特定的技术可以用MySQL做这样的事情?目前,我正在运行SQL查询并在下次轮询之前使用setTimeout.
我知道在这样的实例中使用NoSQL数据库更常见,但我对这项技术并不熟悉,而且我更倾向于使用SQL.
有没有人有任何使用节点监控SQL数据库的经验或技巧?
我正在使用supervisor来运行python脚本:
[program:twitter_track]
autorestart = true
numprocs = 1
autostart = false
redirect_stderr = True
stopwaitsecs = 1
startsecs = 1
priority = 99
command = python /home/ubuntu/services/twitter.py track
startretries = 3
stdout_logfile = /home/ubuntu/logs/twitter_track.log
Run Code Online (Sandbox Code Playgroud)
但这个过程无法启动.以下是错误日志的说明:
Traceback (most recent call last):
File "/home/ubuntu/services/twitter.py", line 6, in <module>
from mymodule.twitter.stream import TwitterStream
ImportError: No module named mymodule.twitter.stream
Traceback (most recent call last):
File "/home/ubuntu/services/twitter.py", line 6, in <module>
Run Code Online (Sandbox Code Playgroud)
似乎获得mymodule,但如果我自己运行twitter.py,一切正常,它只会在我通过主管运行时抛出此错误.
我在我的〜/ .profile文件中将mymodule添加到PYTHONPATH中,如下所示:
export PYTHONPATH=$PYTHONPATH:/home/ubuntu/lib
Run Code Online (Sandbox Code Playgroud)
脚本在通过终端运行时是否有效,但在通过主管运行时是否有任何原因?任何帮助,将不胜感激.
我正在尝试在Snow Leopard上安装MySQL5,但我遇到了一些麻烦.这是我的终端日志:
users-MacBook-Pro:~ sam$ sudo port install mysql5Password:
---> Computing dependencies for mysql5
---> Fetching mysql5
---> Verifying checksum(s) for mysql5
---> Extracting mysql5
---> Applying patches to mysql5
---> Configuring mysql5
---> Building mysql5
---> Staging mysql5 into destroot
---> Installing mysql5 @5.1.53_0
The MySQL client has been installed.
If you also want a MySQL server, install the mysql5-server port.
---> Activating mysql5 @5.1.53_0
---> Cleaning mysql5
users-MacBook-Pro:~ sam$ sudo port install mysql5-server
Password:
---> Computing dependencies for mysql5-server …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个清除用户会话并将其重定向回根主页的路由.
.config(function config( $routeProvider, $stateProvider ) {
$routeProvider.
when('/logout', {resolve: {redirect: function(Session){
Session.clear();
return "/home";
}}});
Run Code Online (Sandbox Code Playgroud)
我在这里做错了,就像打电话一样
$location.path("/logout");
Run Code Online (Sandbox Code Playgroud)
...忽略该功能并重定向回默认路由.我已经尝试将console.log语句添加到函数中以查看它是否被调用.
我是否错误地使用了重定向功能?
我试图根据父窗体/实例的属性在内联中设置选择字段的默认值.
在伪代码中,它看起来像:
def get_form(self, ***):
if self.parent.instance && self.parent.instance.field_x == "y":
self.field_name.choices = ...
Run Code Online (Sandbox Code Playgroud)
我在Google上搜索过,但似乎无法找到任何有关在内联中引用父表单的信息.
也许我必须以相反的方式做到这一点,并从父母内部访问内联?
def get_form(self, ***):
if self.instance:
for inline in self.inlines:
if instanceof(inline, MyInline):
inline.field_name.choices = ...
Run Code Online (Sandbox Code Playgroud)
以上任何一种都可能吗?
我在让django玩图片上传方面遇到了一些麻烦.我的脚本将根据日期创建目录,如下所示:
file = models.FileField(upload_to='uploads/%m-%Y/')
Run Code Online (Sandbox Code Playgroud)
现在,如果我在uploads文件夹中创建日期目录并将文件夹chmod到755,则上传工作正常,但如果我尝试chmod uploads文件夹而不创建过时的子文件夹(我需要django来做),我是获得权限错误.
如何创建文件夹以允许创建子文件夹?
这是一个追溯:
Django Version: 1.3
Python Version: 2.5.2
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.admin',
'tagging',
'mediamanager',
'livesettings',
'projects']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware')
Traceback:
File "/var/lib/python-support/python2.5/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "/var/lib/python-support/python2.5/django/utils/decorators.py" in _wrapped_view
93. response = view_func(request, *args, **kwargs)
File "/var/lib/python-support/python2.5/django/contrib/auth/decorators.py" in _wrapped_view
23. return view_func(request, *args, **kwargs)
File "/var/www/enigma-dev/enigma/mediamanager/views.py" in upload_media
24. m.upload_media(data=form.cleaned_data, params=params)
File "/var/www/enigma-dev/enigma/mediamanager/models.py" in upload_media
63. self.save()
File "/var/lib/python-support/python2.5/django/db/models/base.py" in save
460. self.save_base(using=using, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Tornado Web套接字服务器来实时更改数据库时通知我的用户.我希望使用HTML5网络套接字,即使大多数浏览器不支持它们.Tornado软件包附带的演示没有使用Web套接字,文档中没有提到它们,所以我不知道如何开始.我在谷歌上找到的几个例子要么不起作用,要么记录不清.
有没有人有任何关于如何在更新MySQL数据库时使用Tornado将数据推送到客户端的示例或我可以用来学习的类似内容?
我想为我的模型生成一个随机slug,但没有设置"blank = True"(因为我想稍后通过验证强制执行.)
我想知道我是否可以这样做:
slug = models.SlugField(unique=True, default=some_method(), verbose_name='URL Slug')
Run Code Online (Sandbox Code Playgroud)
some_method是一种产生随机slug的方法?我已经尝试了上面的代码,它不起作用:(
我想做的是生成一个独特的slug(unique_slugify?)
我正在尝试运行以下查询:
data = {
'user_id':1,
'text':'Lorem ipsum',
'$inc':{'count':1},
'$set':{'updated':datetime.now()},
}
self.db.collection('collection').update({'user_id':1}, data, upsert=True)
Run Code Online (Sandbox Code Playgroud)
但是两个'$'查询导致它失败.是否有可能在一个声明中这样做?
我在Ubuntu 12上运行的uwsgi遇到了一些权限问题.这是我的ini文件:
[uwsgi]
project = djangorpoject
base_dir = /home/mysite/mysite.com
uid = www-data
gid = www-data
plugins = http,python
processes = 4
harakiri = 60
reload-mercy = 8
cpu-affinity = 1
max-requests = 2000
limit-as = 512
reload-on-as = 256
reload-on-rss = 192
no-orphans = True
#vacuum = True
master = True
logto = /var/log/uwsgi/%n.log
#daemonize = /var/log/uwsgi/%n.log
#catch-exceptions
disable-logging
virtualenv = %(base_dir)/venv
chdir = %(base_dir)
module = %(project).wsgi:application
socket = /run/uwsgi/%n.sock
chmod-socket = 666
chown-socket = www-data:www-data
Run Code Online (Sandbox Code Playgroud)
如您所见,我在套接字文件上运行chmod和chown.当我尝试加载我的网站时,我收到以下错误:
bind(): Permission …Run Code Online (Sandbox Code Playgroud) django ×3
django-admin ×2
python ×2
angularjs ×1
django-forms ×1
mongodb ×1
mysql ×1
mysql5 ×1
node.js ×1
pymongo ×1
supervisord ×1
tornado ×1
uwsgi ×1
websocket ×1