Pergunta

Um amigo e eu gostaríamos de criar um site para manipular dados do Facebook.

A estrutura é:

  • Uma função da Web PHP (contém a página da web, o Usuário OAuth Login, interage com filas e interage com o banco de dados SQL Azure)
  • uma função de trabalhador F# (faz estatísticas e extrações de dados bastante pesados)

O processo é (assumindo um novo usuário):

  • O usuário chega na página da web e faz login no Facebook via OAuth, a função da web do PHP depois publica uma mensagem em uma fila de tábua com as informações de login e token.

  • A função de trabalhador f# lê a mensagem da fila da tábua e começa a fazer a trituração de dados (usando a API do Facebook) e as estatísticas, então grava os resultados em um banco de dados do SQL Azure. Finalmente, ele publica uma mensagem na fila do Workdone, afirmando que conseguiu fazer o processamento de dados para o usuário.

  • Finalmente, a função da Web do PHP lê a fila do WorkDone e percebe que o trabalho é realizado e exibe os resultados do algoritmo.

Eu tenho duas perguntas:

  • Existe uma grande falha nesse design?

  • Qual é a melhor maneira de colaborar: uma pessoa escreverá o PHP e outro o F#, existe uma maneira de usar o armazenamento de desenvolvimento de duas máquinas diferentes?

Muito obrigado! (Desculpas, se alguns acham essas coisas muito básicas, sou muito iniciante em todos esses assuntos).

Foi útil?

Solução

Não vejo nada de errado com este plano.

Eu não acho que exista uma maneira de ter duas máquinas apontando para o mesmo armazenamento de desenvolvimento, mas você pode usar o armazenamento em nuvem (mesmo quando executa localmente). Eu faço isso o tempo todo; Você pagará transações de largura de banda e armazenamento, mas pela maioria dos aplicativos nos testes, esse custo é trivial.

Outras dicas

Se você quisesse seguir um caminho um pouco mais experimental, também pode tentar olhar Phalanger. Este é um projeto que compila o código PHP ao .NET, por isso pode ser possível executá -lo diretamente no Azure e colaborar bem com F# (Phalanger tem algumas extensões de idiomas que permitem chamar qualquer objetivo .NET e alguns API para chamar objetos de Phalanger de C#).

Eu estava envolvido no projeto há algum tempo, mas agora é desenvolvido por outras pessoas (e como você pode ver nos check-ins, é bastante ativo novamente e elas certamente estariam interessadas em colaborar para resolver possíveis problemas do Azure) . Se você estava interessado, me avise - posso lhe dar alguns contatos, para que você possa discutir o status de falange no Azure com eles.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top