标签: background-process

如何在iphone的后台运行我的应用程序?

即使app没有运行,我也想在后台运行我的计时器.因为我希望在一段时间间隔后得到用户的gps坐标.这样做的方法是什么?

iphone objective-c background-process

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

HttpClient GetAsync在Windows 8上的后台任务中失败

我有一个Win RT应用程序,它有一个后台任务,负责调用API来检索自己更新所需的数据.但是,我遇到了一个问题; 在后台任务之外运行时,调用API的请求可以正常工作.在后台任务中,它失败了,并且还隐藏了任何可以帮助指出问题的异常.

我通过调试器跟踪此问题以跟踪问题点,并验证执行在GetAsync上停止.(我传递的URL有效,URL在不到一秒的时间内响应)

var client = new HttpClient("http://www.some-base-url.com/");

try
{
    response = await client.GetAsync("valid-url");

    // Never gets here
    Debug.WriteLine("Done!");
}
catch (Exception exception)
{
    // No exception is thrown, never gets here
    Debug.WriteLine("Das Exception! " + exception);
}
Run Code Online (Sandbox Code Playgroud)

我读过的所有文档都说允许后台任务拥有所需的网络流量(当然会受到限制).所以,我不明白为什么会失败,或者知道任何其他方法来诊断问题.我错过了什么?


UPDATE/ANSWER

感谢史蒂文,他指出了解决问题的方法.在确保定义的答案就在那里,利益在这里是后台任务前和修复程序后:

之前

public void Run(IBackgroundTaskInstance taskInstance)
{
    BackgroundTaskDeferral deferral = taskInstance.GetDeferral();

    Update();

    deferral.Complete();
}

public async void Update()
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

public async void Run(IBackgroundTaskInstance taskInstance) // added 'async'
{
    BackgroundTaskDeferral deferral = taskInstance.GetDeferral();

    await Update(); // added …
Run Code Online (Sandbox Code Playgroud)

c# background-process windows-8 windows-runtime

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

长时间运行的后台PHP脚本会阻止其他PHP页面,直到完成为止

我在PHP中制作了一个长脚本:

ignore_user_abort(true);
set_time_limit(0);
Run Code Online (Sandbox Code Playgroud)

即使我关闭页面,它也能在后台完美运行.我的问题是,在此脚本在后台运行之前,我无法打开其他PHP文件.我怎么解决这个问题?

php session background-process

10
推荐指数
2
解决办法
3245
查看次数

CoreBluetooth Central Manager无法在后台发现外围设备

我有一个使用蓝牙4.0 LE的应用程序.该应用程序允许设备充当中央和外围设备.

我希望应用程序在后台运行.我已经在info.plist中包含了带有"bluetooth-central"和"bluetooth-peripheral"的UIBackgroundModes.

我正在两个启用了蓝牙4.0 LE的设备上运行该应用程序.

当两个设备都在前台运行时,一切都运行良好,信息双向传递.

当一台设备在前台运行而另一台设备在后台运行时,在后台运行的设备可以扫描和通告,但无法发现在后台运行的其他设备.在前台运行的设备能够发现并连接到后台运行的设备.

通过Apple的核心蓝牙编程指南阅读后,我知道可以连接到另一台设备并以两种方式共享信息.

我可以根据要求发布更多信息.谢谢.

bluetooth background-process ios core-bluetooth bluetooth-lowenergy

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

如何检测python脚本是否作为后台进程运行

有没有办法判断我的python脚本是否作为后台进程运行?我试图区分这两者:

sudo ./myscript.py
sudo ./myscript.py &
Run Code Online (Sandbox Code Playgroud)

使用sys.argv不起作用 - &符号显然不算作参数.以下是对以下内容的影响:

sudo python myscript.py
sudo python myscript.py &
Run Code Online (Sandbox Code Playgroud)

我已经浏览了一下,但一切似乎都是关于从Python脚本中启动后台进程,而不是Python脚本本身是否是后台进程.谢谢!

编辑:目的是输出消息(或不输出), "Press Ctrl+C to stop this script"如果正常启动,但如果作为后台进程启动则不显示消息.

编辑2我忽略了提到这个python脚本将由脚本启动, /etc/init.d而不是从终端提示符启动.因此,标记为正确的答案确实回答了我所说的问题以及给出的信息,但我认为我应该指出它在init.d情景中不起作用,以避免将来出现任何可能的混淆.

python background-process

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

从今天的小部件唤醒iOS父应用程序

有没有办法唤醒iOS父应用程序并让父应用程序在今天的小部件视图中主动在后台运行(但不能打开应用程序)?

background-process ios8-today-widget

10
推荐指数
0
解决办法
472
查看次数

在Python中运行后台进程,不要等待

我的目标很简单:启动rsync并且不要等待.

Debian上的Python 2.7.9

示例代码:

rsync_cmd = "/usr/bin/rsync -a -e 'ssh -i /home/myuser/.ssh/id_rsa' {0}@{1}:'{2}' {3}".format(remote_user, remote_server, file1, file1)
rsync_cmd2 = "/usr/bin/rsync -a -e 'ssh -i /home/myuser/.ssh/id_rsa' {0}@{1}:'{2}' {3} &".format(remote_user, remote_server, file1, file1)
rsync_path = "/usr/bin/rsync"
rsync_args = shlex.split("-a -e 'ssh -i /home/mysuser/.ssh/id_rsa' {0}@{1}:'{2}' {3}".format(remote_user, remote_server, file1, file1))
#subprocess.call(rsync_cmd, shell=True)     # This isn't supposed to work but I tried it
#subprocess.Popen(rsync_cmd, shell=True)    # This is supposed to be the solution but not for me
#subprocess.Popen(rsync_cmd2, shell=True)   # Adding my own shell "&" …
Run Code Online (Sandbox Code Playgroud)

python subprocess popen background-process

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

有限数量的用户启动的后台进程

我需要允许用户提交非常大的工作请求.我们正在谈论100千兆字节的内存和20小时的计算时间.这花费了我们公司很多钱,因此规定任何时候只能运行2个作业,并且当2个已经运行时请求新作业将被拒绝(并且用户通知服务器正忙).

我当前的解决方案使用来自concurrent.futures的Executor,并且需要将Apache服务器设置为仅运行一个进程,从而降低响应速度(当前用户数非常低,因此现在可以正常使用).

如果可能的话我想使用Celery,但我没有在文档中看到任何方法来完成这个特定的设置.

如何在Django应用程序中在后台运行有限数量的作业,并在作业因服务器繁忙而被拒绝时通知用户?

python django asynchronous background-process celery

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

在省电模式Android上运行后台服务

我有一个服务,用于发送在后台运行的http请求,并在"正常模式"下正常工作.问题是当我将手机置于"省电模式"时,该服务无法正常工作.但是,像Whatsapp这样的应用仍然有效.你知道发生了什么吗?

java android background-process

10
推荐指数
2
解决办法
4128
查看次数

如何将参数传递给排队后台任务(.NET Core)

在我的网络应用程序中,我对长时间运行的任务执行操作,并且我想在后台调用此任务。因此,根据文档 .NET Core 3.1排队后台任务,我使用这样的代码:

public interface IBackgroundTaskQueue
{
    ValueTask QueueBackgroundWorkItemAsync(Func<CancellationToken, ValueTask> workItem);

    ValueTask<Func<CancellationToken, ValueTask>> DequeueAsync(CancellationToken cancellationToken);
}

public class BackgroundTaskQueue : IBackgroundTaskQueue
{
    private readonly Channel<Func<CancellationToken, ValueTask>> _queue;

    public BackgroundTaskQueue(int capacity)
    {
        var options = new BoundedChannelOptions(capacity){FullMode = BoundedChannelFullMode.Wait};
        _queue = Channel.CreateBounded<Func<CancellationToken, ValueTask>>(options);
    }

    public async ValueTask QueueBackgroundWorkItemAsync(Func<CancellationToken, ValueTask> workItem)
    {
        if (workItem == null)throw new ArgumentNullException(nameof(workItem));
        await _queue.Writer.WriteAsync(workItem);
    }

    public async ValueTask<Func<CancellationToken, ValueTask>> DequeueAsync(CancellationToken cancellationToken)
    {
        var workItem = await _queue.Reader.ReadAsync(cancellationToken);
        return workItem;
    }
}
Run Code Online (Sandbox Code Playgroud)

和托管服务

public …
Run Code Online (Sandbox Code Playgroud)

.net self-hosting background-process .net-core

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