关于TOMCAT响应超时请求重发的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于TOMCAT响应超时请求重发的问题相关的知识,希望对你有一定的参考价值。

麻烦有没有朋友对TOMCAT比较熟悉的?现在遇到个比较棘手的问题 就是请求发送后 后台开始执行,但是执行了很久响应超时了 这个时候又发送了调请求 导致后台重复执行了,有没有办法让响应超时后请求不重发 谢谢了

参考技术A 对于这种耗时的操作可以设置个“序号”,就是服务器会记住当前的序号,返回给客户端,客户端下一次提交请求时需要带上这个序号,如果序号对不上,就忽略掉,返回什么异常处理的提醒页面。这个是程序设计的问题,跟 tomcat 没有什么关系。我记得以前某个老版本的 Struts 里面就有自动帮我们设置一个序号的。

如果你的服务器是单机,可以考虑在内存中放个“操作队列”,比如,每个参数只允许一个操作执行,防止多人同时提交相同的操作,把每个操作的参数组合记住,当前的执行完了就去掉,否则提醒有其它同事正在做相同的操作。用 ServletContext 中放置 map/set 来记得参数组合 应该也可以吧,这个参数组合就是“作业”。本回答被提问者采纳

Django基础01

关于HTTP协议:

  1. 浏览器往服务端发的叫 请求(request)
      请求的消息格式:
      请求方法 路径 HTTP/1.1
      k1:v1
      k2:v2
      
      请求数据

  2. 服务端往浏览器发的叫 响应(response)
      响应的消息格式:
      HTTP/1.1 状态码 状态描述符
      k1:v1
      k2:v2
      
      响应正文 <-- html的内容

动态的网页:
  本质上都是字符串的替换
  字符串替换发生在什么地方:
  在服务端替换完再返回给浏览器!!!

总结一下:
  1. web框架的本质:
    socket服务端 与 浏览器的通信
  2. socket服务端功能划分:
    a. 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunicorn...

    b. 根据用户访问不同的路径执行不同的函数

    c. 从HTML读取出内容,并且完成字符串的替换 --> jinja2(模板语言)

  1. Python中 Web框架的分类:

  2. 按上面三个功能划分:
      1. 框架自带a,b,c --> Tornado
      2. 框架自带b和c,使用第三方的a --> Django
      3. 框架自带b,使用第三方的a和c --> Flask
  3. 按另一个维度来划分:
      1. Django --> 大而全(你做一个网站能用到的它都有)
      2. 其他 --> Flask 轻量级

  4. 新建Django项目
      命令行创建:
  django-admin startproject mysite

4.创建超级管理员

E:djangowebsite>python manage.py createsuperuser
Username (leave blank to use 'anyu'): admin
Email address: dfsaf@fdsaf.com
Password:xxxxxx
Password (again):xxxxxx
Superuser created successfully.

pycharm创建:
  1. File --> New project --> 左侧选Django --> 右侧填项目路径,并且勾选python.exe

  1. 设置Django项目:
      1. settings.py
      1. 配置HTML文件存放的位置
      
'DIRS': [os.path.join(BASE_DIR, 'templates')],
  1. 配置静态文件存放的位置
       所有静态文件(css/js/图片)都放在我下面你配置的文件夹中
  STATICFILES_DIRS = [
  os.path.join(BASE_DIR, "static")
  ]

以上是关于关于TOMCAT响应超时请求重发的问题的主要内容,如果未能解决你的问题,请参考以下文章

朋友们好,请教tcp/ip中tcp重发的次数和超时时间是多少

TCP简单说(下)

Django基础01

每两个请求之一中的 Swift Alamofire “请求超时”

TCP 的那些事儿(下)(转)

关于幂等操作