标签: background-process

Python:用于长时间运行的后台进程的派生或线程?

我计划用 Python 创建一个长时间运行的后台进程,但我仍然不确定是否使用os.spawnle或线程。我只读过它,因此我对生成或线程没有太多经验。何时使用哪个有什么经验法则吗?

非常感谢

python background-process spawn

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

如何从另一个会话中终止后台任务?

我在后台运行了一个多线程程序:

./my_task &
Run Code Online (Sandbox Code Playgroud)

然后我退出,然后再次登录。现在jobs命令不显示该程序,但top显示该程序的线程。所以它仍然在运行。怎么阻止呢?我想我可以杀死每个线程,但是线程很多,我不知道它会如何影响my_task程序。

我正在使用 Debian Squeeze。

linux bash background-process

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

在 MVC4 网站上有一个持续运行的后台进程

我有一个正在运行的 ASP.NET MVC4 网站,现在我需要某种持续运行的后台任务。但这可能吗?

MVC4 网站是一种通知系统。其他网站可以在此网站上注册CallbackURL,并且该网站应在指定的时间间隔内触发该回调 URL。例如,每小时。

通常,我的网站代码仅在我访问页面时才会激活。但为了完成这项工作,我需要一种方法让我的 ASP.NET 网站在后台持续运行。因此它可以进行检查并在必要时进行 HTTP 调用。

但重要的是,其他网站可以通过Web 请求而不是通过套接字注册自己的CallbackURL 。http

在 ASP.NET MVC Web 应用程序中可能出现这样的情况吗?或者我需要不同的方法吗?

c# asp.net-mvc background-process asp.net-mvc-4

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

关闭终端窗口/会话后将 bg 作业发送到 fg

TL;DR关闭终端窗口后如何将bg(后台)作业转移到(前台)?fg

完整 我正在使用终端启动 Spotify 并使用CTRL+Z和将其置于后台bg。在此窗口中,一切都按预期运行:fg再次将进程置于前台并向jobs我显示 Spotify 作为正在运行的进程。如果我关闭终端窗口,就会出现问题。

当我关闭终端窗口并打开一个新的终端窗口后,该jobs命令找不到在后台运行的 Spotify。因此我无法再访问停止或关闭的过程。

这种行为有什么好处CTRL+Z, fg, bg& jobs?我怎样才能恢复我的进程?

terminal jobs background-process background-foreground

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

在 X 分钟内开始工作

我正在尝试在执行控制器操作 3 分钟后运行作业。

我用 DelayedJob 试过这个:

# in my controller

def index
  @books = Book.all
  Delayed::Job.enqueue(ReminderJob.new(params[:user_id]))
end
Run Code Online (Sandbox Code Playgroud)

ReminderJob.rb文件中:

class ReminderJob < Struct.new(:user_id)
  def perform
    p "run reminder job"
    # do something
  end
  handle_asynchronously :perform, :run_at => Proc.new { 3.minutes.from_now }
end
Run Code Online (Sandbox Code Playgroud)

但是,在访问索引页面时,我在日志中没有看到任何内容,3 分钟后什么也没有发生。

我做错了什么 ?是否有另一种推荐的方法可以在不使用的情况下“在 X 分钟内”运行任务sleep

ruby-on-rails background-process delayed-job

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

应用程序进入后台时 GCDWebServer 崩溃

当我的应用程序进入后台时,GCDWebServer (3.3.3) 发生崩溃:

#3  0x000000010041ea80 in -[GCDWebServer dealloc] at project/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServer.m:221
#4  0x00000001004248b8 in __destroy_helper_block_ ()
#5  0x000000018dd52a28 in _Block_release ()
#6  0x00000001020ad21c in _dispatch_client_callout ()
#7  0x00000001020b2284 in _dispatch_main_queue_callback_4CF ()
#8  0x000000018ee21f2c in __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ ()
#9  0x000000018ee1fb18 in __CFRunLoopRun ()
#10 0x000000018ed4e048 in CFRunLoopRunSpecific ()
#11 0x00000001907d1198 in GSEventRunModal ()
#12 0x0000000194d28628 in -[UIApplication _run] ()
#13 0x0000000194d23360 in UIApplicationMain ()
#14 0x000000010009243c in main at project/main.m:10
#15 0x000000018dd305b8 in start ()
Enqueued from com.apple.main-thread (Thread 1)Queue : com.apple.main-thread (serial) …
Run Code Online (Sandbox Code Playgroud)

crash cocoa-touch background-process ios gcdwebserver

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

每天在特定时间进行Hangfire定期性工作

我试图每天在9:00 AM执行hangfire定期工作。这是我想做的

RecurringJob.AddOrUpdate(() => MyMethod(), "* 9 * * *");
Run Code Online (Sandbox Code Playgroud)

我应该把这行代码放在哪里?

抱歉,这是一个愚蠢的问题。

asp.net-mvc recurring background-process hangfire

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

Celery 连接到 rabbitmq-server 而不是 redis-server

我有一个 Django 应用程序,我想将其配置为 celery 以运行后台任务。

套餐:

  1. 芹菜==4.2.1

  2. 姜戈==2.1.3

  3. Python==3.5

  4. Redis 服务器==3.0.6

settings.py文件中 celery 的配置是:

CELERY_BROKER_URL = 'redis://localhost:6379'

CELERY_RESULT_BACKEND = 'redis://localhost:6379'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TASK_SERIALIZER = 'json'
CELERY_TIMEZONE = 'Asia/Kolkata'
CELERY_BEAT_SCHEDULE = {
    'task-number-one': {
            'task': 'app.tasks.task_number_one',
            'schedule': crontab(minute='*/1'),
    },
}
Run Code Online (Sandbox Code Playgroud)

celery.py文件:

from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
from django.conf import settings
# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings.prod')

app = Celery('project') …
Run Code Online (Sandbox Code Playgroud)

django background-process celery redis-server

3
推荐指数
2
解决办法
2129
查看次数

Jenkins 在后台运行脚本

我如何使用 Jenkins 触发一个脚本说 A(在 python 中),这样即使在 Jenkins 构建完成后,从脚本 A 内部触发的 shell 脚本仍然在后台运行。

现在,我观察到的是,一旦 Jenkins 工作结束,它也会终止后台 shell 脚本。但是,在终端上手动运行 python 脚本没问题。

有没有办法可以跳过从 Jenkins 杀死那个后台 shell 脚本?

python shell background-process jenkins

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

Bash:如何在使用微调器时获取命令的退出代码?

在 bash 脚本中,我有一个长时间运行的命令(rsync例如),有时会暂时不显示输出,所以我想做两件事:

  1. 在该命令上使用微调器来显示脚本没有冻结(即我们只是在等待输出);和,

  2. 完成后获取长时间运行的命令的退出状态,以便稍后在脚本中进行进一步测试。

但问题是,我不太了解将进程发送到后台的处理方式,以及以这种方式处理退出代码的方式,所以我不确定如何进行这项工作。

这是我到目前为止所拥有的,感谢@David C. Rankin的微调器:

#!/bin/bash

spinner() {
    local PROC="$1"
    local str="${2:-'Copyright of KatworX© Tech. Developed by Arjun Singh Kathait and Debugged by the ?Stack Overflow Community?'}"
    local delay="0.1"
    tput civis  # hide cursor
    printf "\033[1;34m"
    while [ -d /proc/$PROC ]; do
        printf '\033[s\033[u[ / ] %s\033[u' "$str"; sleep "$delay"
        printf '\033[s\033[u[ — ] %s\033[u' "$str"; sleep "$delay"
        printf '\033[s\033[u[ \ ] %s\033[u' "$str"; sleep "$delay"
        printf '\033[s\033[u[ | ] %s\033[u' "$str"; …
Run Code Online (Sandbox Code Playgroud)

bash exit-code background-process wait

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