当前位置: 首页 > 知识库问答 >
问题:

运行cron时ConnectionResetError

康元凯
2023-03-14

我正在通过“请求”模块发送一个简单的“post”请求。当直接通过linux终端执行时,它工作正常。然而,当我通过crontab进行设置时,日志会指示错误。

  • 如果我通过终端执行以下操作,它工作正常

'/usr/bin/python3.6/location/sa/tb/uc/md/se/sea。py'

  • 如果按如下方式设置crontab,则会出现错误。
          • /usr/bin/python3.6/location/sa/tb/uc/md/se/sea。py公司
          • 以下是错误消息:

          文件“/usr/local/lib/python3.6/site packages/urllib3/connectionpool.py”,第600行,在urlopen chunked=chunked)文件“/usr/local/lib/python3.6/site packages/urllib3/connectionpool.py”,第343行,在“发出请求”self_validate\u conn(conn)File“/usr/local/lib/python3.6/site packages/urllib3/connectionpool.py”,第839行,在validate\u conn.connect()文件“/usr/local/lib/python3.6/site packages/urllib3/connection.py”,第344行,在connect ssl\u context=context)文件“/usr/local/lib/python3.6/site packages/urllib3/util/ssl.py”,第345行,在ssl\u-wrap套接字返回上下文中。wrap\u socket(sock,server\u hostname=server\u hostname)文件“/usr/lib64/python3.6/ssl.py”,第365行,在wrap\u socket \u context=self,\u session=session)文件“/usr/lib64/python3.6/ssl.py”,第776行,在init self中。do\u handshake()文件“/usr/lib64/python3.6/ssl.py”,第1036行,在do\u handshake self中_sslobj。do\u handshake()文件“/usr/lib64/python3.6/ssl.py”,第648行,在do\u handshake self中_sslobj。do\u handshake()ConnectionResetError:[错误号104]对等方重置连接

          我尝试了什么?

          在标题中添加了代理,但没有go。

          任何帮助都将不胜感激。

共有1个答案

殳自怡
2023-03-14

某些服务器在从单个连接调用多个请求时不会立即启动重新侦听(check\u mkflag)。其中一个原因是避免DoS攻击和所有用户的服务可用性。

由于您的crontab使您的脚本使用单个连接多次调用相同的API,因此我建议您在发出请求之前添加一个无效计时器,例如在调用API之前添加time.sleep(0.01)

 类似资料:
  • 你的 Puppet 工作在休眠状态吗? 默认情况下,当你在客户端上运行 Puppet agent 时, 它会以守护进程(后台进程)的方式执行,每隔30分钟唤醒一次并检查配置清单是否有更新并应用这些变更 (也可以在 puppet.conf 中将 splay 选项的值设为 true 来指定一个随机的时间间隔)。 如果想要更灵活的控制 Puppet 的运行,你可以安排 cron 任务来替代守护进程的触发

  • 问题内容: 因此,我试图将cron作业设置为我创建的守护程序的一种看门狗。如果守护程序出错并失败,我希望cron作业定期重新启动它…我不确定这样做的可能性如何,但是我通读了一些cron教程,找不到任何可以做我的事情正在寻找… 我的守护程序是从Shell脚本开始的,所以我真的只是在寻找一种方法来运行cron作业,前提是该作业的先前运行仍未运行。 它确实为我试图使用锁定文件提供了解决方案,但我不确定是

  • 问题内容: 这可能是一个非常简单的问题,但是如何每两天在我的fedora dist上运行一个python脚本? 谢谢 安东尼斯 问题答案: 这是关于cron的问题。首先是在python脚本顶部添加SHEBANG行。 使您的脚本可执行 然后执行crontab -e并添加

  • 我在目录位置/home/oracle/naresh 文件可插入。java,可插入。类,runjava。sh,ojdbc6。jar位于/home/oracle/naresh目录位置 InsertToTable.java是将数据插入到表中的文件。它在运行时利用ojdbc6.jar。当独立运行下面的外壳脚本时,java将成功运行并将数据插入到表中。 从cron运行相同的shell脚本时,java文件未运

  • 第一次使用cron作业,我在linux上相对较新,我似乎无法让它工作,如果我只是在命令行中手动运行它,它工作得很好,但不是作为cron作业。 我是这样设置的: 合同-e 插入模式 */3****root(cd/home/ec2 user/;java-jar-feedPuller-1.jar)(每3分钟测试一次) 保存并退出 它说它已经创建了一个新的cron作业选项卡 现在,当我做crontab-l

  • 现在我每天下午3点运行我的cron作业 但是我想一天运行两次cron作业。上午10点30分和下午2点30分 我相信此命令将在上午 10:30 运行。我应该如何在下午 2:30 运行它?