- 主题:请教一个老问题:页面执行耗时操作
假如有一个操作很耗时,不想让用户在浏览器页面等很久
想让后台开一个线程操作,页面操作立即返回
一般用什么方法实现?
如果另开一个进程,耗时操作由进程来做应该可以。
但要进行进程间通信,不是很方便。
有没有web服务器支持直接开线程,然后web代码可以方便的和线程交互的?
java+tomcat和AMP分别怎么做?
如果是java,
我的想法是这样的,用户发送一个请求,后台从application获取一个驻留对象p
把请求发给p,然后页面立即返回
p完成任务后,往application或数据库中写个结果
用户回头再来查看就行了
不知道可不可行
python+django试过 没成功
php搜很久没找到靠谱的答案,多数是讲IPC
--
修改:baoxiaoqiang FROM 223.65.143.*
FROM 223.65.140.*
异步消息队列。
【 在 baoxiaoqiang (包小强) 的大作中提到: 】
: 标 题: 请教一个老问题:页面执行耗时操作
: 发信站: 水木社区 (Fri Jan 23 19:14:23 2015), 站内
:
: 假如有一个操作很耗时,不想让用户在浏览器页面等很久
: 想让后台开一个线程操作,操作完通知用户
: 一般用什么方法实现?
:
: 如果另开一个进程,耗时操作由进程来做应该可以。
: 但要进行进程间通信,不是很方便。
: 有没有web服务器支持直接开线程,然后web代码可以方便的和线程交互的?
: java+tomcat和AMP分别怎么做?
:
: 如果是java,
: 我的想法是这样的,用户发送一个请求,后台从application获取一个驻留对象p
: 把请求发给p,然后页面立即返回
: p完成任务后,往application或数据库中写个结果
: 用户回头再来查看就行了
: 不知道可不可行
:
: python+django试过 没成功
: php搜很久没找到靠谱的答案,多数是讲IPC
: --
:
: ※ 修改:·baoxiaoqiang 于 Jan 23 19:18:14 2015 修改本文·[FROM: 223.65.140.*]
: ※ 来源:·水木社区 newsmth.net·[FROM: 223.65.140.*]
--
修改:baoxiaoqiang FROM 223.65.140.*
FROM 116.246.13.*
能否具体些 给个参考链接?
【 在 xWvxYWYxvWx (xWvxYWYxvWxxWvxYWYxvWx) 的大作中提到: 】
: 异步消息队列。
--
FROM 223.65.140.*
最正规的玩法是websocket,如果通信简单用comet。
【 在 baoxiaoqiang 的大作中提到: 】
: 假如有一个操作很耗时,不想让用户在浏览器页面等很久
: 想让后台开一个线程操作,操作完通知用户
: 一般用什么方法实现?
: ....................
--
FROM 123.66.178.*
websocket是指的向浏览器端推数据么
我主要是想问在web服务器里面开线程,可不可行
【 在 dhcn (coder) 的大作中提到: 】
: 最正规的玩法是websocket,如果通信简单用comet。
--
FROM 223.65.140.*
websocket是指开tcp连接,这是网页游戏常用的玩法。
【 在 baoxiaoqiang 的大作中提到: 】
: websocket是指的向浏览器端推数据么
: 我主要是想问在web服务器里面开线程,可不可行
: 【 在 dhcn (coder) 的大作中提到: 】
: ....................
--
FROM 123.66.178.*
用户请求进来, web server 发一个消息给消息队列服务器,
然后立刻响应用户的请求,这个过程会很迅速;
同时,用若干个消费者程序去消费发过来的消息,异步地实现复杂操作。
消息服务器可以考虑 RabbitMQ.
【 在 xWvxYWYxvWx (xWvxYWYxvWxxWvxYWYxvWx) 的大作中提到: 】
: 标 题: Re: 请教一个老问题:页面执行耗时操作
: 发信站: 水木社区 (Fri Jan 23 19:43:04 2015), 站内
:
: 异步消息队列。
:
: 【 在 baoxiaoqiang (包小强) 的大作中提到: 】
: : 标 题: 请教一个老问题:页面执行耗时操作
: : 发信站: 水木社区 (Fri Jan 23 19:14:23 2015), 站内
: :
: : 假如有一个操作很耗时,不想让用户在浏览器页面等很久
: : 想让后台开一个线程操作,操作完通知用户
: : 一般用什么方法实现?
: :
: : 如果另开一个进程,耗时操作由进程来做应该可以。
: : 但要进行进程间通信,不是很方便。
: : 有没有web服务器支持直接开线程,然后web代码可以方便的和线程交互的?
: : java+tomcat和AMP分别怎么做?
: :
: : 如果是java,
: : 我的想法是这样的,用户发送一个请求,后台从application获取一个驻留对象p
: : 把请求发给p,然后页面立即返回
: : p完成任务后,往application或数据库中写个结果
: : 用户回头再来查看就行了
: : 不知道可不可行
: :
: : python+django试过 没成功
: : php搜很久没找到靠谱的答案,多数是讲IPC
: : --
: :
: : ※ 修改:·baoxiaoqiang 于 Jan 23 19:18:14 2015 修改本文·[FROM: 223.65.140.*]
: : ※ 来源:·水木社区 newsmth.net·[FROM: 223.65.140.*]
:
:
: --
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 116.246.13.*]
--
修改:baoxiaoqiang FROM 223.65.140.*
FROM 180.156.232.*
我之前用 websocket 搞定了。
【 在 baoxiaoqiang (包小强) 的大作中提到: 】
: 假如有一个操作很耗时,不想让用户在浏览器页面等很久
: 想让后台开一个线程操作,操作完通知用户
: 一般用什么方法实现?
: ...................
--
FROM 120.39.29.*
websocket有WebSocket的弊病,HTTP内网代理环境没法整。
【 在 hgoldfish 的大作中提到: 】
: 我之前用 websocket 搞定了。
:
--
FROM 123.66.183.*
web服务器开不开线程跟websocket完全没关系啊。
依照你这个“完成后通知用户”的时间差需求量级,可以做 second poll, minute poll,
要 soft real-time 的话 websocket/comet/eventsource/long poll... 哪个都一样。
要支持断线重连就随便写下数据库或者其他什么 storage
【 在 baoxiaoqiang (包小强) 的大作中提到: 】
: websocket是指的向浏览器端推数据么
: 我主要是想问在web服务器里面开线程,可不可行
--
FROM 180.173.62.*