标签: background-process

Ocaml:获取进程的CPU使用率

我想做的事

我有一个计算密集的OCaml应用程序,我希望它在后台运行而不会干扰正常的计算机使用.我想向用户提供两个选项:

(1)应用程序仅在CPU使用率几乎为0%时运行;

(2)应用程序仅使用"免费"处理能力(例如,如果其他进程加起来为100%,则OCaml应用程序暂停;如果其他进程几乎为0%,则对OCaml应用程序没有限制;如果其他进程添加比如说,50%然后OCaml将使用高达50%).

一些想法

我的想法是检查代码中各个检查点的CPU使用情况,并在必要时暂停执行.

在(1)中,我们只检查CPU是否低于2%,如果不是,则暂停直到它再次低于2%.

在(2)中,事情比较棘手.由于当没有限制时,应用程序总是消耗100%的CPU,检查点将非常频繁,将CPU使用率降低到一半,我只需要在每个检查点将其延迟到检查点之间的时间.如果检查点频繁,这就类似于使用50%的CPU,我会说.对于其他百分比,我们可以通过暂停适当的时间段来做类似的事情.然而,这看起来非常人为,充满了开销,最重要的是,我不确定它是否真的能满足我的需求.更好的替代方法是Unix.nice n在应用程序开始时使用一些适当的整数调用.我想这个设置n=15可能是正确的.

我的问题

(Q1)如何从我的OCaml应用程序中了解应用程序进程的CPU使用情况?(我想用OCaml函数执行此操作,而不是通过在命令行上调用"ps"或类似的东西...)

(Q2)你认为我的想法存在问题(2).改变流程的优点有哪些实际差异?

(Q3)您对(2)有任何其他建议吗?

ocaml cpu-usage background-process

5
推荐指数
0
解决办法
629
查看次数

如何使用authToken发送电子邮件?

不知何故,我设法进入AuthToken from GoogleAndroid.现在我找不到如何使用此令牌使用电子邮件ID和authToken发送电子邮件而无需用户交互.

请举一些例子.

email android background-process

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

获取正在运行的进程列表并杀死其后台服务

我正在构建一个用于RAM优化的Android应用程序.我可以使用这个答案成功获取正在运行的进程列表(及其PID).但是,我没有看到通过PID杀死它们或它们的后台服务的方法.

service android garbage-collection background-process

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

在iOS中的后台线程上执行任务,即使应用程序进入后台,也要继续执行:

如何在后台线程上执行?即使用户按下主页按钮,执行也应在后台继续.

background-process ios

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

iOS7中的后台同步

我们必须开发一个应用程序,它将在某个时间间隔支持数据同步操作,无论应用程序是在前台还是在后台.

我想知道在iOS7中......

  • 是否可以在应用程序处于后台时同步数据(即调用Web服务)?
  • 我们可以访问SQLite数据库文件/我们可以在应用程序处于后台时进行数据库操作吗?
  • 我们可以在后台运行计时器吗?
  • 我们可以在应用程序处于后台时显示有关某些更新的警报吗?

提前致谢.

sqlite background-process ios ios7

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

使用背景中的NSURLSession逐个下载100个文件的列表

我已经实现了一个针对iOS 7+的下载管理器应用程序NSURLSession.下载管理器具有要按优先级顺序下载的排队文件列表.当应用程序处于后台并且委托调用被正确调用时,下载工作正常.但是当应用程序进入后台时,即使下载完成,也需要花费太多时间

NSURLSession delegate:- **URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)downloadURL

被叫.有时代理人根本没有被调用,当我来到前台时,会调用下载任务委托.这种延迟的原因是什么?

objective-c background-process ios nsurlsession nsurlsessionconfiguration

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

Sidekiq中perfrom_async和延迟有什么区别?

阅读Sidekiq Wiki时,我看到以下示例:

入门:

发送要异步处理的消息:

HardWorker.perform_async('bob', 5)
Run Code Online (Sandbox Code Playgroud)

您还可以通过在类方法上调用delay方法来发送消息:

User.delay.do_some_stuff(current_user.id, 20)
Run Code Online (Sandbox Code Playgroud)

此外,来自延迟扩展:

使用延迟以异步方式发送电子邮件.使用delay_for(interval)或delay_until(time)在将来的某个时间发送电子邮件.

UserMailer.delay.welcome_email(@ user.id)UserMailer.delay_for(5.days).find_more_friends_email(@ user.id)UserMailer.delay_until(5.days.from_now).find_more_friends_email(@ user.id)

那么perfrom_async和之间究竟有什么区别delay?在哪种情况下我更喜欢一个而不是另一个?

asynchronous actionmailer background-process sidekiq

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

iOS swift流媒体应用程序无法在后台模式播放音乐

我的应用程序运行正常,但是一旦屏幕保护程序打开或在iPhone上执行其他操作,流就会停止.我激活后台模式"正在播放音频"但它没有帮助.

这是我的ViewController.swift

import UIKit
import MediaPlayer

class ViewController: UIViewController {
    let player: MPMoviePlayerViewController = MPMoviePlayerViewController(contentURL: NSURL(string: "http://url to my stream"))

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        player.moviePlayer.movieSourceType = .Streaming
        self.presentViewController(player, animated: true, completion: nil)

        loadAddressURL()
    }

    func stop() {
        player.moviePlayer.stop()
    }
    @IBAction func Hitplay(sender: AnyObject) {
        player.moviePlayer.play()
    }

    @IBAction func Hitpause(sender: AnyObject) {
        player.moviePlayer.stop()
    }

    @IBOutlet var Nowplay: UIWebView!
    var URLPath = "http://url to on air now"

    func …
Run Code Online (Sandbox Code Playgroud)

xcode background-process ios swift

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

如何使用Swift配置后台应用刷新?

我具有以下功能,可以在我的SeachVC(UIViewController)中下载JSON数据,它可以完美运行。

func downloadJSON(){

    guard let url = URL(string: "myURL") else { return }

    URLSession.shared.dataTask(with: url) { (data, response, err) in
        guard let data = data else { return }

        do {
            let downloadedCurrencies = try JSONDecoder().decode([Currency].self, from: data)

            // Adding downloaded data into Local Array
            Currencies = downloadedCurrencies

        } catch let jsonErr {
            print("Here! Error serializing json", jsonErr)
        }

        }.resume()
}
Run Code Online (Sandbox Code Playgroud)

为了实现后台应用刷新,我在App Delegate中添加了以下功能;

var window: UIWindow?

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point …
Run Code Online (Sandbox Code Playgroud)

background-process ios completionhandler appdelegate swift

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

在Rails 5中运行后台进程的最佳方法是什么?

我有一个Web应用程序,我需要在其中执行需要一段时间才能完成的过程(通常需要1分钟)。

我将尝试简要地解释一下:在我的应用程序中,我有一个算法,该算法基于一堆参数(主要是日期)将外键分配给一组对象。当用户按下应用程序内的指定按钮时,将执行控制器方法。在该方法内部,我调用模型中的一种方法,在该方法中处理了所有逻辑并分配了键。如前所述,整个过程大约需要一分钟才能完成。

所以我的问题是:在Rails 5中在后台运行此过程的最佳方法是什么?我显然不想强迫我的用户等待一分钟,然后他们才能浏览应用程序,我也不希望浏览器在等待服务器响应时应用程序超时。那么解决这个问题的最佳方法是什么?我需要一个可以异步发出请求的框架吗?如果是这样,哪一个?(如果它不需要太多的依赖关系并且我可以继续使用ActiveRecord,我会更喜欢)。

我在ActionCable或AJAX方面并没有做太多工作,但是如果他们能以任何方式完成工作,那么我会很高兴知道如何做。

理想情况下,完成该过程后,我应该能够在应用内向用户发送通知

view.html.erb:

# Button the user presses to execute the algorithm
<%= link_to 'execute algorithm', algorithm_path(@variable), :method => :put %>
Run Code Online (Sandbox Code Playgroud)

my_controller.rb:

def button_method
  Object.execute_algorithm(@variable)
  redirect_to :back
end
Run Code Online (Sandbox Code Playgroud)

Object.rb:

def self.execute_algorithm(variable)
  # Logic
end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails background-process ruby-on-rails-5

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