小编PAN*_*ack的帖子

在终端中运行时脚本在线程上阻塞,而不是直接在解释器中

我希望你能帮助我.这需要一些解释......

TLDR问题:为什么线程进程会从解释器中按预期运行(分离的python线程),myprocess.start()但是当从终端运行时阻塞子线程python myprocess.py


背景:我threading.Thread为我的类子类化,它也调用了另外两个Thread类型的子类.看起来像:

class Node(threading.Thread):
    def __init__(self, gps_device):
        threading.Thread.__init__(self)
        self.daemon = False

        logging.info("Setting up GPS service")
        self.gps_svc = gps.CoordinateService(gps_device)
        self.gps_svc.daemon = True

        logging.info("Setting up BLE scanning service")
        # TODO: This is blocking when run in terminal (aka how we do on Raspberry Pi)
        self.scan_svc = scan.BleMonitor()
        self.scan_svc.daemon = True

        logging.info("Node initialized - ready for start")

    def run(self):
        self.gps_svc.start()
        self.scan_svc.start()  # blocks here in terminal

        do stuff...
Run Code Online (Sandbox Code Playgroud)

这两个服务(gps_svc和 …

python multithreading

11
推荐指数
1
解决办法
749
查看次数

使用 env_file 在 docker-compose.yml 中设置构建参数

我正在尝试使用 Docker 和Docker Compose创建一个容器化应用程序。我有一个 PubNub 帐户,它允许我为不同的环境(开发、测试、生产)使用不同的 API 密钥。为了帮助我为此构建图像,我尝试使用带有env_file 的构建参数集。

它不起作用。

WARNING: The PUB_KEY variable is not set. Defaulting to a blank string.
WARNING: The SUB_KEY variable is not set. Defaulting to a blank string.
Run Code Online (Sandbox Code Playgroud)

问题:

  • 我在设置构建参数时犯了什么错误?
  • 我如何解决它?
  • 这是一个很好的方式来设置ENV的容器变量scanflask

最底部是IntelliJ IDE 屏幕截图,或者文本代码就在下面。

以下是docker-compose.yml内容:

version: '3.6'

services:

  scan:
    env_file:
      - sample.env
    build:
      context: .
      dockerfile: Dockerfile
      args:
        pub_key: $PUB_KEY
        sub_key: $SUB_KEY
      target: scan
    image: bt-beacon/scan:v1 …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

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

从 docker-compose 启动时无法访问 NiFi UI

我一生都无法访问 NiFi Web UI。这让我讨厌安全感。


太长了;我找不到在 docker 容器中启动 NiFi 并仍然访问 UI 的正确方法。这是我尝试过的(8小时):

docker run --name nifi \
  -p 8080:8080 \
  -d \
  apache/nifi:latest
Run Code Online (Sandbox Code Playgroud)

我去localhost:8080/nifi- 超时。同样的127.0.0.1

docker inspect nifi- IP网关是172.20.0.1具有实际IP的172.0.0.2Invalid Host Header和超时。

开始随机尝试一些东西:

# I tried localhost, 0.0.0.0, various IP addresses
docker run --name nifi \
  -p 8080:8080 \
  -e NIFI_WEB_HTTP_HOST=${hostname-here}
  -d \
  apache/nifi:latest
Run Code Online (Sandbox Code Playgroud)

我还docker-compose.yml为我的可能性递减建立了一个完整的堆栈。一切正常,除了:

nifi:
  image: apache/nifi:latest
  hostname: nifi
  depends_on:
    - zookeeper
    - broker
    - schema_registry
    - nifi-registry …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose apache-nifi

5
推荐指数
1
解决办法
6056
查看次数

Django:分配ForeignKey - 无法获得类的repr

我在这里问这个问题,因为在我的搜索中,这个错误通常与查询有关,而不是ForeignKey赋值.

我得到的错误发生在模型的方法中.这是代码:

class Deal(models.Model):

    ...model_fields...

    def _update_existing_deal(self, deal_dict):
        #deal made from deal_dict here, psuedo code below
        deal = Deal(deal_dict)
        HistoricalDeal().create_historical_deal(deal)


        self.price = deal_dict.get('price', self.price)
        if self.comment != deal_dict.get['comment']:
            self.comment = deal_dict.get('comment', '')
        self.set_unit_price()
        logger.debug(
            'Existing deal, (pk: %d), updated.',
            self.pk
        )

class HistoricalDeal(models.Model):
    deal = models.ForeignKey(Deal)
    created_at = models.DateTimeField(auto_now_add=True)
    price = models.DecimalField(max_digits=8, decimal_places=2, blank=True,
                                default=0)
    unit_price = models.DecimalField(decimal_places=2, max_digits=6,
                                     null=True, blank=True)

    def create_historical_deal(self, deal):
        self.deal = deal
        self.price = deal.price
        self.unit_price = deal.unit_price
        self.save()
        logger.debug(
            'HistoricalDeal created for Deal with …
Run Code Online (Sandbox Code Playgroud)

python django repr

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