小编sma*_*ili的帖子

从flask端点长时间运行脚本

我一直在试着想出这个,希望其他人已经遇到过这个并且知道如何解决它:)

我正在尝试构建一个非常简单的Flask端点,只需要调用一个长时间运行的阻塞php脚本(想想while true {...}).我尝试了几种不同的方法来异步启动脚本,但问题是我的浏览器实际上从未收到响应,即使执行了运行脚本后生成响应的代码.

我同时使用尝试multiprocessingthreading,既不似乎工作:

# multiprocessing attempt
@app.route('/endpoint')
def endpoint():
  def worker():
    subprocess.Popen('nohup php script.php &', shell=True, preexec_fn=os.setpgrp)

  p = multiprocessing.Process(target=worker)
  print '111111'
  p.start()
  print '222222'
  return json.dumps({
    'success': True
  })

# threading attempt
@app.route('/endpoint')
def endpoint():
  def thread_func():
    subprocess.Popen('nohup php script.php &', shell=True, preexec_fn=os.setpgrp)

  t = threading.Thread(target=thread_func)
  print '111111'
  t.start()
  print '222222'
  return json.dumps({
    'success': True
  })
Run Code Online (Sandbox Code Playgroud)

在这两种情况下我看到的111111222222,但我的浏览器仍然挂在从端点的响应.我已尝试p.daemon = True过这个过程,p.terminate()但没有运气.我曾希望在不同的shell中使用nohup启动一个脚本,并且单独的进程/线程可以正常工作,但不知何故Flask或uWSGI受其影响.

更新

由于这在我的Mac上本地工作,当我直接启动我的Flask应用程序并直接 …

python flask uwsgi python-2.7

10
推荐指数
2
解决办法
977
查看次数

在Python中运行时将对象分配给对象

我正在尝试在Python中使用Javascript等效项:

a.new_func = function(arg1, arg2) {
    var diff = arg1 - arg2;
    return diff * diff;
}
Run Code Online (Sandbox Code Playgroud)

现在,我这样做的方法是首先定义方法,然后分配它,但我的问题是Python是否允许速记在同一行中进行赋值和定义部分.像这样的东西:

a.new_func = def new_func(arg1, arg2):
    diff = arg1 - arg2
    return diff * diff
Run Code Online (Sandbox Code Playgroud)

而不是这个:

def new_func(arg1, arg2):
    diff = arg1 - arg2
    return diff * diff
a.new_func = new_func
Run Code Online (Sandbox Code Playgroud)

我意识到差异不大,但我仍然有兴趣知道它是否可能.

python python-2.7

4
推荐指数
2
解决办法
100
查看次数

如何在没有jQuery的情况下获取事件目标

我一直试图<li>mouseenter事件中获取目标(元素),但到目前为止还没有运气!

代码:

<ul id="ul">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>

<script>
    var ul = document.getElementById('ul');

    ul.onmouseenter = function(e) {
        console.log(e.target);
    };
</script>
Run Code Online (Sandbox Code Playgroud)

不幸的是,控制台不断打印<ul />元素.有什么建议?

html javascript

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

简单的python正则表达式无法按预期工作

我正在尝试提取出该-字符串之前和之后的其余数字,但无法同时提取出两者。这是交互式终端的输出:

>>> a = '#232 - Hello There'
>>> re.findall('#(.*?) - (.*?)', a)
[('232', '')]
Run Code Online (Sandbox Code Playgroud)

为什么我的正则表达式无法正常工作?

python regex python-regex

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

标签 统计

python ×3

python-2.7 ×2

flask ×1

html ×1

javascript ×1

python-regex ×1

regex ×1

uwsgi ×1