小编Pau*_*jan的帖子

如何阻止WSGI挂起apache

我有django像这样运行WSGI:

<VirtualHost *:80>
    WSGIScriptAlias / /home/ptarjan/django/django.wsgi
    WSGIDaemonProcess ptarjan processes=2 threads=15 display-name=%{GROUP}
    WSGIProcessGroup ptarjan
    Alias /media /home/ptarjan/django/mysite/media/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

但如果在python我做:

def handler(request) :
    data = urllib2.urlopen("http://example.com/really/unresponsive/url").read()
Run Code Online (Sandbox Code Playgroud)

整个apache服务器挂起并且没有响应此回溯

#0  0x00007ffe3602a570 in __read_nocancel () from /lib/libpthread.so.0
#1  0x00007ffe36251d1c in apr_file_read () from /usr/lib/libapr-1.so.0
#2  0x00007ffe364778b5 in ?? () from /usr/lib/libaprutil-1.so.0
#3  0x0000000000440ec2 in ?? ()
#4  0x00000000004412ae in ap_scan_script_header_err_core ()
#5  0x00007ffe2a2fe512 in ?? () from /usr/lib/apache2/modules/mod_wsgi.so
#6  0x00007ffe2a2f9bdd in ?? () from /usr/lib/apache2/modules/mod_wsgi.so
#7  0x000000000043b623 in ap_run_handler ()
#8  0x000000000043eb4f in ap_invoke_handler () …
Run Code Online (Sandbox Code Playgroud)

python apache django mod-wsgi

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

PIL:图像大小调整:类似于firefox的算法

我从PIL的所有4种算法中得到了同样糟糕的调整大小

>>> data = utils.fetch("http://wavestock.com/images/beta-icon.gif")
>>> image = Image.open(StringIO.StringIO(data)); image.save("/home/ptarjan/www/tmp/metaward/original.png")
>>>
>>> image = Image.open(StringIO.StringIO(data)); image.resize((36,36), Image.ANTIALIAS).save("/home/ptarjan/www/tmp/metaward/antialias.png")
>>> image = Image.open(StringIO.StringIO(data)); image.resize((36,36), Image.BILINEAR).save("/home/ptarjan/www/tmp/metaward/bilinear.png")
>>> image = Image.open(StringIO.StringIO(data)); image.resize((36,36), Image.BICUBIC).save("/home/ptarjan/www/tmp/metaward/bicubic.png")
>>> image = Image.open(StringIO.StringIO(data)); image.resize((36,36), Image.NEAREST).save("/home/ptarjan/www/tmp/metaward/nearest.png")
>>>
>>> image = Image.open(StringIO.StringIO(data)); image.thumbnail((36,36), Image.ANTIALIAS); image.save("/home/ptarjan/www/tmp/metaward/antialias-thumb.png")
>>> image = Image.open(StringIO.StringIO(data)); image.thumbnail((36,36), Image.BILINEAR); image.save("/home/ptarjan/www/tmp/metaward/bilinear-thumb.png")
>>> image = Image.open(StringIO.StringIO(data)); image.thumbnail((36,36), Image.BICUBIC); image.save("/home/ptarjan/www/tmp/metaward/bicubic-thumb.png")
>>> image = Image.open(StringIO.StringIO(data)); image.thumbnail((36,36), Image.NEAREST); image.save("/home/ptarjan/www/tmp/metaward/nearest-thumb.png")
>>>
>>> image = Image.open(StringIO.StringIO(data)); image.convert("RGB").resize((36,36), Image.ANTIALIAS).save("/home/ptarjan/www/tmp/metaward/antialias-rgb.png")
>>> image = Image.open(StringIO.StringIO(data)); image.convert("RGB").resize((36,36), Image.BILINEAR).save("/home/ptarjan/www/tmp/metaward/bilinear-rgb.png")
>>> …
Run Code Online (Sandbox Code Playgroud)

python image thumbnails python-imaging-library

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

Java:使用HTTPBasic身份验证获取URL

我正在做一些简单的HTTP身份验证,我得到了一个

java.lang.IllegalArgumentException: Illegal character(s) in message header value: Basic OGU0ZTc5ODBk(...trimmed from 76 chars...)
(...more password data...)
Run Code Online (Sandbox Code Playgroud)

我认为这是因为我有一个非常长的用户名和密码,编码器包含\n76个字符.有什么方法可以解决这个问题吗?该URL仅支持HTTP Basic Auth.

这是我的代码:

private class UserPassAuthenticator extends Authenticator {
    String user;
    String pass;
    public UserPassAuthenticator(String user, String pass) {
        this.user = user;
        this.pass = pass;
    }

    // This method is called when a password-protected URL is accessed
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(user, pass.toCharArray());
    }
}

private String fetch(StoreAccount account, String path) throws IOException {
    Authenticator.setDefault(new UserPassAuthenticator(account.getCredentials().getLogin(), account.getCredentials().getPassword()));

    URL url …
Run Code Online (Sandbox Code Playgroud)

java authentication url http http-authentication

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

在javascript中加入2个'主题'

如果我有一个ajax调用提取(使用回调),然后在此期间运行其他一些代码.如何在前两个函数完成时调用第三个函数.我确定使用轮询(setTimeout然后检查一些变量)很容易,但我宁愿回调.

可能吗?

javascript ajax jquery multithreading join

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

Python:只设置存在检查?

我有一些很长的大字符串,我想要查找它们.我不需要保存整个字符串.据我所知,set()实际存储的字符串占用了我很多的记忆.

这样的数据结构是否存在?

done = hash_only_set()
while len(queue) > 0 :
   item = queue.pop()
   if item not in done :
      process(item)
      done.add(item)
Run Code Online (Sandbox Code Playgroud)

(我的队列不断被其他线程填充,所以我无法在开始时扣除它).

python hash set data-structures

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

Django:如何创建排行榜

假设我有大约1,000,000个用户.我想找出任何给定用户所处的位置,以及他周围的用户.用户可以随时获得新的成就,如果他能看到他的常规更新,那将是非常棒的.

老实说,我认为这样做的每一种方式在时间和/或记忆方面都会非常昂贵.想法?到目前为止,我最接近的想法是让用户离线并构建百分位桶,但这无法向用户显示他的确切位置.

一些代码,如果这可以帮助你django人:

class Alias(models.Model) :
    awards = models.ManyToManyField('Award', through='Achiever')

    @property
    def points(self) :
        p = cache.get('alias_points_' + str(self.id))
        if p is not None : return p

        points = 0
        for a in self.achiever_set.all() :
            points += a.award.points * a.count

        cache.set('alias_points_' + str(self.id), points, 60 * 60) # 1 hour
        return points

class Award(MyBaseModel):
    owner_points = models.IntegerField(help_text="A non-normalized point value. Very subjective but try to be consistent. Should be proporional. 2x points = 2x effort (or skill)")
    true_points = models.FloatField(help_text="The …
Run Code Online (Sandbox Code Playgroud)

python sql django leaderboard

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

高可扩展性技术堆栈

我正在构建一个将被荒谬加载的Web服务(每秒数千到数万个查询).我的正常堆栈的apache,PHP,memcache和一些数据库将能够使用一个很好的负载均衡器和很多机器来处理它,但我想知道是否有更好的解决方案.

端点将被信标击中(通过客户端上的javascript),我将读取用户的cookie,从数据库中提取一些小信息,缓存它,做一些小计算,发送响应,如果需要写入数据库并使缓存无效.

良好的技术选择和/或硬件建议?

language-agnostic architecture hardware scalability

8
推荐指数
2
解决办法
4448
查看次数

使用python运行其他程序

我有一个在命令行上运行良好的命令.它有很多论据cmd --thing foo --stuff bar -a b input output

我想从python运行它并阻塞等待它完成.当脚本打印到的东西stdout,stderr我希望它立即显示给用户.

什么是正确的模块?

我试过了:


import commands
output = commands.getoutput("cmd --thing foo --stuff bar -a b input output")
print output
Run Code Online (Sandbox Code Playgroud)

这项工作很有效,除非stdout直到最后才返回.


import os
os.system("cmd --thing foo --stuff bar -a b input output")
Run Code Online (Sandbox Code Playgroud)

这将在cmd实际完成时打印所有输出.


import subprocess
subprocess.call(["cmd", "--thing foo", "--stuff bar", "-a b", "input", "output"])
Run Code Online (Sandbox Code Playgroud)

这不会以某种方式正确传递参数(我无法找到确切的问题,但cmd拒绝我的输入).如果我把它echo作为第一个参数,它打印出的命令在我直接粘贴到终端时可以正常工作.


import subprocess
subprocess.call("cmd --thing foo --stuff bar -a b input output")
Run Code Online (Sandbox Code Playgroud)

与上面完全相同.

python unix subprocess

8
推荐指数
2
解决办法
8530
查看次数

Sinatra Web Admin(像Django Admin)

有没有办法让Sinatra获得Django Admin风格的网络管理员?

ruby django django-admin sinatra

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

Slack iOS URL Scheme

我可以直接从我的iOS应用程序链接到Slack团队中的某人吗?如果我只是打开一个slack:网址,它将打开松弛的应用程序,但不会链接到某人的消息线程.我试了几个明显的:

  • slack:ptarjan
  • slack://ptarjan

但我在黑暗中打.

作为参考,Facebook Messenger是fb-messenger://user-thread/{user-id}和skype的skype:{user-id}?chat'.

ios slack-api

8
推荐指数
2
解决办法
2043
查看次数