即使提出这个问题,我也想知道如此简单的事情对我来说如此困难.我想要做的就是按计划自动停止和启动Azure WebSite.起初,我查看了WebJobs,并创建了一个powershell脚本,可以阻止使用stop-azurewebsite命令行开关的WebSite:
stop-azurewebsite [my site]
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个.cmd文件,使用powershell.exe来调用它来执行powershell文件
PowerShell.exe -ExecutionPolicy RemoteSigned -File stopit.ps1
Run Code Online (Sandbox Code Playgroud)
我创建了一个WebJob来运行powershell命令来停止该站点,但它错误地显示了一条消息:
stop-azurewebsite : The term 'stop-azurewebsite' is not recognized as the name
of a cmdlet, function, script file, or operable program. Check the spelling of
the name, or if a path was included, verify that the path is correct and try
again.
Run Code Online (Sandbox Code Playgroud)
所以,我想我会去REST API路线.我使用fiddler创建了一个post请求,并使用适当的管理证书来调用:
https://management.core.windows.net/[my subscription id]/services/WebSpaces/[webspace]/sites/[website name]/stop
Run Code Online (Sandbox Code Playgroud)
事实证明,没有'停止'命令.有'重启',但在这种情况下显然没有用.所以,所有的说,什么是在一个特定的时间安排自动执行Azure的网站停止和随后的(但要晚得多),启动时有一个合理的方式?
更新:
我已经弄清楚如何使用PUT发出http请求来停止网站
https://management.core.windows.net/[my subscription id]/services/WebSpaces/[webspace]/sites/[website name]有一个机构{"State":"Stopped"},但我仍然没有一个明显的方式在WebJob中对此URL进行"PUT".
我有一些代码需要在调用服务总线时运行.这个特殊的代码是CPU密集型的,并且可能需要同时运行其中的100个.Azure Web Jobs是使用来自一台计算机的计算资源,还是使用来自多台计算机的任何可用计算资源?
主题说这一切真的:)说我有一个非常繁忙的Azure连续webjob正在从天蓝色的队列处理:
public static void ProcessQueue([QueueTrigger("trigger")] Info info)
{ .... }
Run Code Online (Sandbox Code Playgroud)
如果我重新部署webjob,我可以看到任何当前正在执行的作业似乎已中止(我看到"Never Finished"状态).在我发布后,这项工作是重播还是永远丢失了?
另外,有一种很好的方法可以确保在部署webjobs时没有正在运行的作业,或者由开发人员编写解决方案(例如每次运行时检查的配置标志).
谢谢
我在一个天蓝色的网站上设置了一些连续的Web作业,扩展到两到三个大型实例(标准模式始终打开).我的工作只在其中一个w3wp进程上运行.我需要这些扩展,但他们不会.我看了几个视频并阅读了文档.我没有settings.job文件或任何应该限制这些的设置.
这是我的职业选手的来源

是否可以为Azure webjob中的各个非触发功能设置单独的计划?我问,因为我有六个单独的任务,我想在一天中的不同时间以不同的时间间隔运行,并且不想为每个任务创建单独的项目.
现在我有一个带有"Always On"的Continuos网络作业.此webjob侦听队列消息并执行操作.一切正常但我必须支付网络工作"听"命令的每一分钟,不是吗?
我已经看到您也可以按需运行Web作业,但我没有找到任何关于如何执行随需应变Web作业的示例代码.
背景:我在Web作业中运行Web爬网程序,该作业接收应从邮件队列中爬网的URL.我想尽量降低成本.
如何从ASP.NET网站执行随需应变的Web作业?
谢谢
我正在尝试使用nodejs创建一个webjob,脚本使用各种节点模块,但是当作业运行时,它似乎不会预先安装包.
我上传的zip文件有一个包含所有依赖项的package.json和一个zip根目录下的server.js,脚本被执行但是根据下面的日志它找不到要运行的模块.
我在日志中获得以下输出.
[07/28/2015 07:36:14 > 5fabb6: SYS INFO] Status changed to Initializing
[07/28/2015 07:36:14 > 5fabb6: SYS INFO] Run script 'server.js' with script host - 'NodeScriptHost'
[07/28/2015 07:36:14 > 5fabb6: SYS INFO] Status changed to Running
[07/28/2015 07:36:15 > 5fabb6: ERR ]
[07/28/2015 07:36:15 > 5fabb6: ERR ] module.js:340
[07/28/2015 07:36:15 > 5fabb6: ERR ] throw err;
[07/28/2015 07:36:15 > 5fabb6: ERR ] ^
[07/28/2015 07:36:15 > 5fabb6: ERR ] Error: Cannot find module 'sendgrid'
[07/28/2015 07:36:15 > 5fabb6: …Run Code Online (Sandbox Code Playgroud) 当我创建新的Azure webjob项目时,我可以在app.config下面的部分中看到connectionstring部分:
<connectionStrings>
<!-- The format of the connection string is "DefaultEndpointsProtocol=https;AccountName=NAME;AccountKey=KEY" -->
<!-- For local execution, the value can be set either in this config file or through environment variables -->
<add name="AzureWebJobsDashboard" connectionString="" />
<add name="AzureWebJobsStorage" connectionString="" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
在我的webjob函数中我只与我的应用程序db交互.
- 那么我真的需要为azure webjobs创建另外两个数据库吗?
当我从visual studio运行webjobs时,我收到以下错误:
应用程序:WebJobTest.exe Framework版本:v4.0.30319描述:由于未处理的异常,进程已终止.异常信息:System.InvalidOperationException Stack:位于Microsoft.Azure的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)的System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task) WebJobTest.Program.Main()中的.WebJobs.JobHost.Call(System.Reflection.MethodInfo,System.Object)
当我尝试访问webjobs日志时,它显示:WebJob详细信息WebJobTest
确保使用以下格式在Microsoft Azure网站配置中设置名为AzureWebJobsDashboard的连接字符串:DefaultEndpointsProtocol = https; AccountName = NAME; AccountKey = KEY指向存储Microsoft Azure WebJobs运行时日志的Microsoft Azure存储帐户.
我想这是因为没有正确的数据库连接字符串.
- 上述两个错误之间可能存在什么联系?
我有一个程序,我想每天运行一次.我将program.exe和settings.job放在一个zip文件中并上传.我坐着跑步模式连续.我的settings.job看起来像:
{
"schedule": "0 0 8 * * *"
}
Run Code Online (Sandbox Code Playgroud)
我的计划是它每天都在8点运行,但它反复运行一遍又一遍.我做错了什么?
我有一个从服务器获取api数据的异步方法.当我在本地计算机上运行此代码时,在控制台应用程序中,它以高速执行,每分钟在异步函数中推送几百个http调用.然而,当我从Azure WebJob队列消息中触发相同的代码时,它似乎同步操作并且我的数字爬行 - 我确信我的方法中缺少一些简单的东西 - 任何帮助都赞赏.
(1).. WebJob函数,用于侦听队列中的消息,并在收到的消息上启动api get进程:
public class Functions
{
// This function will get triggered/executed when a new message is written
// on an Azure Queue called queue.
public static async Task ProcessQueueMessage ([QueueTrigger("myqueue")] string message, TextWriter log)
{
var getAPIData = new GetData();
getAPIData.DoIt(message).Wait();
log.WriteLine("*** done: " + message);
}
}
Run Code Online (Sandbox Code Playgroud)
(2)外部azure在异步模式下工作的类...
class GetData
{
// wrapper that is called by the message function trigger
public async Task DoIt(string MessageFile)
{
await CallAPI(MessageFile);
}
public …Run Code Online (Sandbox Code Playgroud)