Azure PHP Web角色,F#worker角色:在不同的机器上开发

时间:2010-10-29 19:28:11

标签: php azure f# azure-web-roles azure-worker-roles

我和朋友想创建一个网站来操纵Facebook数据。

结构是:

  • PHP Web角色(包含网页,用户OAuth登录,与队列交互,并与SQL Azure数据库交互)
  • 一个F#工作者角色(做统计数据和非常繁重的数据提取)

该过程是(假设新用户):

  • 用户到达网页并通过OAuth登录Facebook,然后PHP Web角色在worktodo队列中使用登录信息和令牌发布消息。

  • F#worker角色从worktodo队列中读取消息并开始进行数据处理(使用Facebook API)和统计信息,然后将结果写入SQL Azure数据库。最后,它向workdone队列发布一条消息,说明它已成功为用户进行数据处理。

  • 最后,PHP Web角色会读取workdone队列并注意到工作已完成,并显示算法结果。

我有两个问题:

  • 这个设计有一个很大的缺陷吗?

  • 合作的最佳方式是:一个人会编写PHP而另一个人编写F#,有没有办法从两台不同的机器上使用开发存储?

非常感谢! (如果有些人发现这些东西太基础,我很抱歉,在所有这些问题上我都是初学者)。

2 个答案:

答案 0 :(得分:2)

如果您想要更多实验路径,您也可以尝试查看Phalanger。这是一个将PHP代码编译为.NET的项目,因此可以直接在Azure上运行它并与F#很好地协作(Phalanger有一些语言扩展,允许您调用任何.NET对象和一些{{3}来自C#)。

我前段时间参与了这个项目,但它现在由其他人开发了(正如你从签到中看到的那样,它再次非常活跃,他们肯定会对合作解决问题感兴趣Azure问题)。如果您有兴趣,请告诉我 - 我可以给您一些联系方式,以便您可以与他们讨论Azure上的Phalanger状态。

答案 1 :(得分:1)

我认为这个计划没有错。

我认为没有办法让两台机器指向同一个开发存储,但您可以只使用云存储(即使在本地运行)。我一直这样做;您将为带宽和存储交易付费,但对于大多数测试中的应用程序而言,这笔费用是微不足道的。