标签: background-process

目标C中符号^的含义

可能重复:
目标C中的插入符号
这个^语法在Objective-C中意味着什么?

我厌倦了在目标C中搜索符号^的含义.我已经在许多项目中看到过它,尤其是在后台运行任务中.我将链接 http://developer.apple.com/library/ios/#samplecode/StitchedStreamPlayer/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010092 ,MyStreamingMovieViewController.m你可以在里面找到以下内容 - (IBAction)endScrubbing:(id)sender method.

timeObserver = [[player addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(tolerance, NSEC_PER_SEC) queue:dispatch_get_main_queue() usingBlock:
                         ^(CMTime time)
                         {
                             [self syncScrubber];
                         }] retain];
    }
Run Code Online (Sandbox Code Playgroud)

另外http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html

- (void)applicationDidEnterBackground:(UIApplication *)application
{
UIApplication*    app = [UIApplication sharedApplication];

bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
    // Clean up any unfinished task business by marking where you.
    // stopped or ending the task outright.
    [app endBackgroundTask:bgTask];
    bgTask = UIBackgroundTaskInvalid;
}];

// Start the long-running task and return immediately.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    // Do the …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c background-process ios objective-c-blocks

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

Bash&(&符号)运算符

我试图在bash shell中并行运行3个命令:

$ (first command) & (second command) & (third command) & wait
Run Code Online (Sandbox Code Playgroud)

这个问题是,如果first command失败,例如,退出代码是0(我猜因为wait成功).

期望的行为是,如果其中一个命令失败,退出代码将为非零(理想情况下,其他正在运行的命令将被停止).

我怎么能实现这个目标?

请注意,我想并行运行命令!

bash exit-code background-process

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

如果应用关闭,后台有android通知吗?

即使我的应用程序已关闭,我也试图在Android通知栏中显示通知.

我试过搜索,但我没有找到帮助的运气.

一个例子是新闻应用程序.即使手机屏幕关闭或新闻应用程序关闭,它仍然可以发送最近新闻的通知并将其显示在通知栏中.

我如何在自己的应用程序中执行此操作?

android background-process android-notifications

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

ASP.NET Core IHostedService手动启动/停止/暂停(?)

我想在ASPNET Core中实现一个可以按需停止和启动的定期(定时)IHostedService实例.我的理解是IHostedService是由应用程序启动时的框架启动的.

但是,我希望能够"手动"启动/停止服务,也许可以通过UI使用开/关切换.理想情况下,"关闭"状态将处置当前正在运行的服务,然后"开启"状态将创建新实例.

我在这里阅读了MS文档:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services? view = aspnetcore- 2.1.

我最初的想法是获取正在运行的服务的实例,然后调用public StopAsync(CancellationToken token)方法.然而,当涉及到我应该传递哪个令牌时,我有点卡住了,对于该StartAsync(CancellationToken cancellationToken)方法也可以这样说.

关于如何做到这一点的任何想法,或者它是否可取?我的方法是否违反了ASPNET Core中托管服务的预期设计?

编辑7.27.2018

因此,经过一些研究(也就是实际阅读文档:D)后,托管服务StartAsync/StopAsync方法确实意味着与应用程序的生命周期一致.注册的IHostedServices似乎没有添加到DI容器中以注入其他类.

因此,我认为我最初的想法不会起作用.现在我用配置依赖项(IOptions<T>)注册了我的服务,可以在运行时更新.当托管服务正在处理时,它将检查配置是否应该继续,否则它将等待(而不是停止或处置托管服务).

我很快就会将此标记为我的答案,除非我听到其他一些想法.

c# dependency-injection background-process asp.net-core

16
推荐指数
2
解决办法
9796
查看次数

JobIntentService 和 IntentService 有什么区别?

我不明白这两个 API 之间有什么区别。我的意思是什么时候使用第一个。为什么有 JobIntentService ?提前致谢

java android background-process android-intentservice jobintentservice

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

Powershell:在parralel中运行多个作业,并查看后台作业的流式处理结果

概观

想要调用带有参数的Powershell脚本,在后台运行每个作业,并向我显示详细输出.

我遇到的问题

该脚本似乎正在运行,但我希望通过在后台作业运行时流式传输结果来确认这一点.

###StartServerUpdates.ps1 Script###

#get list of servers to update from text file and store in array
$servers=get-content c:\serverstoupdate.txt

#run all jobs, using multi-threading, in background
ForEach($server in $servers){
  Start-Job -FilePath c:\cefcu_it\psscripts\PSPatch.ps1 -ArgumentList $server
}

#Wait for all jobs
Get-Job | Wait-Job

#Get all job results
Get-Job | Receive-Job
Run Code Online (Sandbox Code Playgroud)

我目前看到的是:

Id              Name            State      HasMoreData     Location             Command                  
--              ----            -----      -----------     --------             -------                  
23              Job23           Running    True            localhost            #patch server ...        
25              Job25           Running    True            localhost            #patch server …
Run Code Online (Sandbox Code Playgroud)

parallel-processing powershell background-process start-job

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

iOS - BLE在背景上扫描随机冻结

更新14/08 - 3 - 找到真正的解决方案:

您可以在下面的答案中查看解决方案!

更新16/06 - 2 - 可能是解决方案:

正如Sandy Chapman在回答中的评论中所说的那样,我现在可以使用这种方法在扫描开始时检索我的外围设备:

- (NSArray<CBPeripheral *> * nonnull)retrievePeripheralsWithIdentifiers:(NSArray<NSUUID *> * nonnull)identifiers
Run Code Online (Sandbox Code Playgroud)

我实际上是想通过在扫描开始时让我的外围设备恢复并在需要时启动连接(即使它不在范围内)来使其工作.iOS将保持活着,直到找到我正在寻找的设备.

还请注意,iOS 8.x中可能存在一个错误,如果在后台有另一个使用蓝牙的发布版本的应用程序,则会不时通过扫描(我得到的消失回调)来保持应用程序的调试版本.

更新16/06:

所以我检查了retrievePeripheralsWithServices,如果在我开始扫描时连接了任何设备.当我得到错误时,我启动应用程序和我做的第一件事

- (void) applicationDidBecomeActive:(UIApplication *)application
Run Code Online (Sandbox Code Playgroud)

是检查返回数组的大小.它总是0,每次我得到错误.如果我的设备在当前运行中之前没有建立任何连接,也会发生错误.当我收到另一台设备的错误时,我也能看到我的设备广告并用第二台设备触发命令.

更新10/06:

  • 我让我的应用程序运行整晚以检查是否没有任何内存泄漏或大量资源使用,这是我在后台运行~12-14小时后的结果.内存/ CPU使用情况与我离开时完全相同.这让我觉得我的应用程序没有任何泄漏可能导致iOS关闭它以恢复内存/ CPU使用率.

资源使用分析

更新08/06:

  • 请注意,这不是一个广告问题,因为我们的BLE设备始终处于供电状态,我们使用了我们能找到的最强的BLE电子卡.
  • 在后台iOS检测时间也不是问题.我等了很长时间(20~30分钟)才确定不是这个问题.

原始问题

我目前正在开发一个处理与BLE设备通信的应用程序.我的一个限制是,只有在必须发送命令或读取数据时才必须连接到此设备.我必须在完成后尽快断开连接,以允许其他潜在用户也这样做.

该应用程序的一个功能如下:

  • 用户可以在应用程序处于后台时启用自动命令.如果在10分钟内未检测到设备,则会触发此自动命令.
  • 我的应用会扫描,直到找到我的BLE设备.
  • 为了在需要时保持清醒,我每次都重新开始扫描,因为CBCentralManagerScanOptionAllowDuplicatesKey选项无知.
  • 当它被检测到时,我正在检查最后一次检测是否超过10分钟.如果是这种情况,我连接到设备,然后写入对应于我需要的服务的特性.

目标是在用户进入范围时触发此设备.它可能会在超出范围几分钟后发生几个小时,这取决于我的用户习惯.

一切都以这种方式运作良好,但有时(似乎在随机时间发生),扫描类型"冻结".我的过程做得很好,但经过几次,我看到我的应用程序扫描,但我的didDiscoverPeripheral:回调从未被调用,即使我的测试设备正好在我的BLE设备前面.有时它可能需要一段时间来检测它,但在这里,几分钟后没有任何反应.

我以为iOS可能已经杀死我的应用程序以声明内存,但当我关闭和蓝牙时,centralManagerDidUpdateState:被称为正确的方式.如果我的应用程序被杀,那不应该是这样吗?如果我打开我的应用程序,扫描将重新启动,它将恢复生机.我还检查了iOS在180秒的活动后没有关闭我的应用程序,但事实并非如此,因为它在这段时间后运行良好.

我已经建立了我的.plist有正确的设置(蓝牙中央UIBackgroundModes).管理所有BLE处理的我的班级作为单身人士存储在我的AppDelegate中,可通过我的所有应用程序访问.我也测试过切换我正在创建这个对象的地方.目前我正在应用程序中创建它:didFinishLaunchingWithOptions:方法.我试着将它放在我的AppDelegate init中:但是如果我这样做的话,每次我在后台时扫描都会失败.

我不知道我的代码的哪一部分可以告诉你,以帮助你更好地理解我的过程.以下是一些可能有用的示例.请注意," AT_appDelegate "是一个maccro,以便访问我的AppDelegate.

// Init of my DeviceManager class that handles all BLE processing …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c background-process ios core-bluetooth

15
推荐指数
1
解决办法
3582
查看次数

从npm脚本在后台运行http-server

你如何http-server从npm脚本开始后台,以便另一个npm脚本,如使用jsdomMocha测试,可以发出HTTP请求http-server

http-server软件包安装时:

npm install http-server --save-dev
Run Code Online (Sandbox Code Playgroud)

package.json文件包含:

"scripts": {
   "pretest": "gulp build-httpdocs",
   "test": "http-server -p 7777 httpdocs/ && mocha spec.js"
},
Run Code Online (Sandbox Code Playgroud)

运行npm test成功启动http-server,但当然命令在显示后挂起:

Starting up http-server, serving httpdocs/
Available on:
  http://127.0.0.1:7777
  http://192.168.1.64:7777
Hit CTRL-C to stop the server
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法来启动Web服务器,因此它不会阻止Mocha测试?

额外奖励:http-server摩卡测试结束后你如何关闭?

javascript background-process httpserver node.js npm

15
推荐指数
1
解决办法
8110
查看次数

如何在 ASP.NET Core 2.1 中的计时器上运行 BackgroundService

我想在 ASP.NET Core 2.1 中运行后台作业。它必须每 2 小时运行一次,并且需要访问我的 DI 容器,因为它将在数据库中执行一些清理工作。它需要async并且应该独立于我的 ASP.NET Core 2.1 应用程序运行。

我看到有一个IHostedService,但 ASP.NET Core 2.1 还引入了一个名为的抽象类BackgroundService,它为我做了更多的工作。看起来不错,我想用它!

不过,我一直无法弄清楚如何运行源自BackgroundService计时器的服务。

我是否需要ExecuteAsync(token)通过记住它上次运行的时间并确定这是否是 2 小时来配置它,或者是否有更好/更清晰的方法来说明它必须每 2 小时运行一次?

另外,我解决问题的方法是否正确BackgroundService

谢谢!

编辑:

将此发布在MS 扩展存储库上

c# background-process background-service asp.net-core asp.net-core-2.1

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

如何创建在应用程序关闭时也能工作的 Flutter 后台服务

我正在为大学的学术目的开发 Flutter 应用程序。现在,我需要运行一种“永远在线”的后台服务,以便使用蓝牙,最重要的是从外部 REST API 获取定期更新。

我已经从 pub.dev (thisthis)检查了这两个库,但没有找到开箱即用的完美解决方案(如预期的......)。我还看到了 Kotlin 原生的东西(这里)。我想知道的是实现我的目标的最佳选择是什么(在最佳实践、完整性和简单性方面)。

查看下图以获得更多示意图:

在此处输入图片说明

rest service android background-process flutter

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