小编Jin*_*n.J的帖子

django 服务器启动时如何启动后台线程?

TL;DR在我的 django 项目中,我在哪里放置我的“启动线程”代码以在 django 服务器启动后立即运行线程?

首先祝大家新年快乐!这是一个新手的问​​题,所以它可能看起来很愚蠢。提前感谢您的耐心和帮助!

背景资料
最近我在写一个接收MQTT消息的MQTT转发程序。我希望用户设置一些规则来处理要转发的消息,所以我选择了 django 来构建 Web 服务器。用户可以在网页上自行编辑规则。
对于 MQTT 客户端,无论用户是否打开网页,我都需要有一个线程来接收 MQTT 消息,因此我无法在view.py 中编写它。如果我编写一个 shell 来分别启动 django 服务器和我的脚本,我不确定如何将用户设置从 django 服务器传递到我的 mqtt 客户端脚本。

问题
1. 有没有办法在我输入后立即启动后台线程python manage.py runserver
2.用户设置之一是MQTT服务器主机,所以一旦用户在网页上更改了这个条目,后台MQTT客户端应该重新启动并连接到新主机。有什么方法可以实现吗?

我做了一些研究和一些可能的解决方案,我发现是django-background-tasksCelery,但我不知道这些是正确的方式,我认为这个问题是太小,无法导入另一个沉重的模块来处理。请给我一些建议!如果您有任何不清楚的地方,请随时问我!
再次感谢你!

python django python-3.x mqtt

4
推荐指数
1
解决办法
1403
查看次数

为什么 System.lineSeparator() 被弃用?

我的 intelliJ IDE 的屏幕截图,因为我无法直接发布图片 (顺便说一下,我使用的是 jdk 10)出于某种原因,我需要根据输入输出一个字符串,并且字符串中可能有新行。为了使程序在不同平台上运行,我使用一个变量来存储 System.lineSeparator() 并在需要时插入它。但后来我意识到 intelliJ 显示它已被弃用。所以我的问题是,为什么这个函数被弃用了?使用行分隔符是一种不好的做法吗?这样做的更好方法是什么?

final String NEW_LINE = System.lineSeparator();
String output = "Line one" + NEW_LINE + "Line two";
WriteToFile(output);
Run Code Online (Sandbox Code Playgroud)

更新:图片显示了我的 IntelliJ IDE 中的警告。该问题可能是由我的配置引起的。根据下面的答案(谢谢大家的回答),也许下次我应该在问“为什么”之前先问“是吗”。

java intellij-idea

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

Apache Flink:执行环境和多个接收器

我的问题可能会引起一些混乱,因此请先查看说明。确定我的问题可能会有所帮助。我稍后将在问题末尾添加我的代码(也欢迎有关我的代码结构/实现的任何建议)。\n感谢您提前提供的任何帮助!

\n\n

我的问题:

\n\n
    \n
  1. 如何在 Flink Batch 处理中定义多个接收器而不让它重复从一个源获取数据?

  2. \n
  3. createCollectionEnvironment()和 和有什么区别getExecutionEnvironment()?我应该在本地环境中使用哪一个?

  4. \n
  5. 有什么用env.execute()?我的代码将输出没有这句话的结果。如果我添加这句话,它会弹出一个异常:

  6. \n
\n\n

-

\n\n
Exception in thread "main" java.lang.RuntimeException: No new data sinks have been defined since the last execution. The last execution refers to the latest call to \'execute()\', \'count()\', \'collect()\', or \'print()\'. \n    at org.apache.flink.api.java.ExecutionEnvironment.createProgramPlan(ExecutionEnvironment.java:940) \n    at org.apache.flink.api.java.ExecutionEnvironment.createProgramPlan(ExecutionEnvironment.java:922) \n    at org.apache.flink.api.java.CollectionEnvironment.execute(CollectionEnvironment.java:34) \n    at org.apache.flink.api.java.ExecutionEnvironment.execute(ExecutionEnvironment.java:816) \n    at MainClass.main(MainClass.java:114)\n
Run Code Online (Sandbox Code Playgroud)\n\n

描述: \n编程新手。最近我需要使用 Flink Batch 处理一些数据(对数据进行分组、计算标准差等)。\n但是我遇到了需要输出两个 DataSet 的情况。\n结构是这样的

\n\n
\n

从 …

java apache-flink

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

标签 统计

java ×2

apache-flink ×1

django ×1

intellij-idea ×1

mqtt ×1

python ×1

python-3.x ×1