我有一个计算密集的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)有任何其他建议吗?
不知何故,我设法进入AuthToken from GoogleAndroid.现在我找不到如何使用此令牌使用电子邮件ID和authToken发送电子邮件而无需用户交互.
请举一些例子.
我正在构建一个用于RAM优化的Android应用程序.我可以使用这个答案成功获取正在运行的进程列表(及其PID).但是,我没有看到通过PID杀死它们或它们的后台服务的方法.
如何在后台线程上执行?即使用户按下主页按钮,执行也应在后台继续.
我们必须开发一个应用程序,它将在某个时间间隔支持数据同步操作,无论应用程序是在前台还是在后台.
我想知道在iOS7中......
提前致谢.
我已经实现了一个针对iOS 7+的下载管理器应用程序NSURLSession.下载管理器具有要按优先级顺序下载的排队文件列表.当应用程序处于后台并且委托调用被正确调用时,下载工作正常.但是当应用程序进入后台时,即使下载完成,也需要花费太多时间
NSURLSession delegate:- **URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)downloadURL
被叫.有时代理人根本没有被调用,当我来到前台时,会调用下载任务委托.这种延迟的原因是什么?
objective-c background-process ios nsurlsession nsurlsessionconfiguration
阅读Sidekiq Wiki时,我看到以下示例:
从入门:
发送要异步处理的消息:
Run Code Online (Sandbox Code Playgroud)HardWorker.perform_async('bob', 5)您还可以通过在类方法上调用delay方法来发送消息:
Run Code Online (Sandbox Code Playgroud)User.delay.do_some_stuff(current_user.id, 20)
此外,来自延迟扩展:
使用延迟以异步方式发送电子邮件.使用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?在哪种情况下我更喜欢一个而不是另一个?
我的应用程序运行正常,但是一旦屏幕保护程序打开或在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) 我具有以下功能,可以在我的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) 我有一个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) ios ×5
android ×2
swift ×2
actionmailer ×1
appdelegate ×1
asynchronous ×1
cpu-usage ×1
email ×1
ios7 ×1
nsurlsession ×1
objective-c ×1
ocaml ×1
service ×1
sidekiq ×1
sqlite ×1
xcode ×1