Giter VIP home page Giter VIP logo

Comments (2)

alastairs avatar alastairs commented on June 22, 2024

After spending a few hours looking into this and trying to fix it up as-is, I've come to the conclusion that fixing this will require something of a re-write of the feature. The feature was converted to an AsyncController during GiveCamp, which turned out to be wrong in two ways:

  1. AsyncControllers shouldn't be used to improve the user experience, which was my reasoning for doing it: I wanted to give the user quick feedback that their file was being imported. A file of ~1000 records takes a few seconds to import. Reading around the topic has indicated that AsyncControllers are a scalability feature only.
  2. The conversion to an AsyncController was completed incorrectly during GiveCamp, and so it wasn't actually being called asynchronously as expected! This was rectified when the functionality was moved into GiveCRM itself, which is when the error messages stopped working.

The correct solution to improve the user experience appears to be to upload the spreadsheet via AJAX. This looks like a good jQuery plugin to use.

from givecrm.

alastairs avatar alastairs commented on June 22, 2024

@nbarnwell made these comments on Twitter:

I don't think I'd burden IIS with long running tasks. Better to have it save the data somewhere for something else to pick up, although how we'd do that given we don't really know our hosting strategy yet is beyond me. Serialise raw data to DB I guess, in some sort of staging table that a totally separate process can then import properly. Row can also contain status of import too, so a standard non- async controller can just query for status. Ideally though each line in the file would be an msg for an ESB.

from givecrm.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.