问题来自MS Outlook日历行为.
想象一下,我有两个反复发生的事件(从今天开始):"每个第二个星期一"和"每个奇怪的日期".有没有办法检查交叉点和/或在算法上找到第一个交叉日期而不是在每个日期强制执行?
定义可以用CRON的符号或ICal符号表示.我觉得没关系.
阳历中有没有解决方案?
UPD:知道MS Outlook日历如何处理这些事件也很有趣.我的意思是它如何发现前者.今天有两个活动?我想也应该是确定具体日期是否适合重复事件定义的技术.
形式上它可以描述为两个函数算法:
Date:intersection(Event e1, Event e2)
boolean:contains(Date date, Event ev)
Run Code Online (Sandbox Code Playgroud)
关于限制,我们可以从事件定义表示法.您可以在outlook(或iCal)中看到,您可以定义不是那种复杂的重复事件.
轨道中的Cron解决方案众多且非常好.那不是我在这里挣扎的.
相反,我遇到的麻烦就是让用户创建他们自己的重复任务(比如提醒) - 特别是如何在数据库中建模和存储这些任务(一个好的用户界面也是非常重要的 - 如果有的话会很棒)代码那里).谷歌日历在这里是一个很好的例子(添加活动的UI,而不是整个日历)......他们应该能够在每天下午1点CST,或周一/周三/周五,或每周等等.无论cron解决方案是什么然后使用将需要轮询数据库以查看在那个时间需要发送哪些提醒等.
有人在rails中看到过这个好插件/宝石吗?似乎会有一些东西,但我还没有找到它.
谢谢!
我目前正在使用ExpressCheckout和RecurringPayments开发PayPal支付交易.测试软件我(德国)买家在PayPal登录确认付款后收到以下消息:
"ZurzeitkönnenwirIhre Anfrage leider nicht verarbeiten.Kehren Sie zu主持人帐户的测试商店zurückundwählensieeine andere Option aus."
这意味着
"我们无法接受请求.请回到商店选择另一个选项".
有点谷歌搜索我的Paypal支持的答案:
亲爱的xxx,
感谢您联系PayPal商户技术服务.
尽管我想给你一个肯定的答案,但不幸的是德国买家目前不支持Express Checkout Recurring支付API.这些德国买家将始终收到您看到的错误,因为定期付款API不支持德国资金来源,因此会抛出此错误.我很抱歉,但德国买家将无法使用此服务.唯一的解决方法是使用预先批准的付款或参考交易API对您的集成和流程定期付款进行更改:
这句话已经两年了.所以我问:这还是事实吗?我不能相信这一点,因为我认为PayPal会在API参考中提到这些重要信息,因此程序员可以在实现此方法之前处理这个问题.
有没有办法解决问题而无需编写新的交易方法?
谢谢
我想要的是:
当页面加载时 - 背景在10秒后变为红色,bgColor变为绿色,淡出淡出动画...再过10秒后变为橙色......然后再变为红色等等.
有人可以帮忙吗
我在共享环境中的GoDaddy上运行了一个ASP .NET网站.该应用程序是一种基于订阅的服务,具有向用户重复计费的选项.
每小时,我们都需要将用户数据与我们的支付处理器同步,以更新已升级或取消其帐户的用户.支付处理器没有用于调用URL或以其他方式通知我们更改的机制.
问题:我们需要创建一个后台线程,以预定义的间隔运行一些代码.在.NET中有一些关于后台任务的好文章,但我相信,这可能有一个更简单的方法.也许是可以调用函数等的应用程序范围的计时器.
限制:共享环境不允许Windows服务,外部应用程序,完全信任等.
由于这是一个生产应用程序,我想尽可能使用最安全的方法,而不是绞尽脑汁的IIS.
我正在尝试为我的移动应用程序集成 Paypal 定期付款。到目前为止,我设法使用https://github.com/paypal/PayPal-PHP-SDK在各种 PHP 应用程序上实现 Paypal 付款,但这是我第一次实现定期付款
我正在尝试使用以下代码为计费计划构建付款:
$paymentDefinition = new PaymentDefinition();
$paymentDefinition->setName('Mobile App subscription')
->setType('REGULAR')
->setFrequency('Month')
->setFrequencyInterval("1")
->setCycles("1")
->setAmount(
new Currency(
array(
'value' => 50,
'currency' => 'USD'
)
)
);
Run Code Online (Sandbox Code Playgroud)
从 Paypal 文档中,我了解到“setCycles”应设置为 0 以进行无限制订阅。使用 PHP SDK 将其设置为 0 会返回 400 错误。
一切看起来都很好,我收到了第一笔付款,但我不确定将 Cycle 设置为“1”是否会完成我正在寻找的工作。
我正在编写一个MVC 5互联网应用程序,并正在使用HangFire重复性任务.
如果我有一个月度重复任务,我怎样才能获得下一个执行时间的值?
这是我的重复任务的代码:
RecurringJob.AddOrUpdate("AccountMonthlyActionExtendPaymentSubscription", () => accountService.AccountMonthlyActionExtendPaymentSubscription(), Cron.Monthly);
Run Code Online (Sandbox Code Playgroud)
我可以按如下方式检索作业数据:
using (var connection = JobStorage.Current.GetConnection())
{
var recurringJob = connection.GetJobData("AccountMonthlyActionExtendPaymentSubscription");
}
Run Code Online (Sandbox Code Playgroud)
但是,我不确定下一步该做什么.
是否有可能获得重复任务的下一个执行时间?
提前致谢.
我正在使用Paypal处理我网站的自动定期付款.用户付费订阅我的网站,以便他们可以定期收到新闻通讯.
因此,假设客户在几个月后取消其会员资格.他们通过登录Paypal并取消未来的自动付款来做到这一点.我该如何更新我的网站以反映此取消?
我想到的第一个解决方案是安排一个每隔午夜执行脚本的cronjob,用来自Paypal的信息更新我的数据库.
第二个解决方案是在时事通讯邮件发送日,我执行脚本以使用Paypal中的信息更新我的数据库.每次用户"登录"到我的网站时,网站也会执行该脚本.
有没有更好的方法来做到这一点?
我有一个日历应用程序,它使用较新的PHP DateTime类.我有办法处理反复发生的事件,但看起来很糟糕,我想看看你们是否有更好的想法:
假设用户查看截止日期为3100的日历 - 此事件应该显示正常情况下每3天重复一次.问题是 - 如何计算该月的那些日子?
=========================================
这就是我基本上这样做的方式,但我知道我更容易丢失一些东西:
我的主要问题来自第1步.PHP DateInterval :: date_diff函数不计算天数差异.它会给我几年,几个月和几天.然后,我必须捏造这些数字以获得大约在3100年12月左右的估计日期.11/16/2009 +(1090年*365.25天)+(9个月*30.5天)+ 15天
当你像9999年一样走向未来时,这个估计可能会在一个月内消失,然后我必须减去很多3天的间隔才能到达我需要的地方.
我试图验证我提出的解决方案,我认为这是一个相当典型的问题.我有一个服务运行,每10分钟应该做一些事情.我最终得到了以下内容:
private AutoResetEvent autoResetEvent = new AutoResetEvent(true);
private bool isRunning = true;
public void Execute()
{
while(isRunning)
{
DoSomething();
if(isRunning)
{
autoResetEvent.WaitOne(new Timespan(0, 10, 0));
}
}
}
public void Stop()
{
isRunning = false;
autoResetEvent.Set();
}
Run Code Online (Sandbox Code Playgroud)
我可以看到的直接潜在问题是,我没有对Stop()中的isRunning修改进行任何类型的锁定,这被另一个线程调用,但我不确定我真的需要吗?我认为最糟糕的情况是它会运行一个额外的周期.
除此之外,这段代码有任何明显的问题吗?有没有更好的方法来解决这个我不知道的问题?